C 中的 *(*(*p))) 指针是什么?

问题描述 投票:0回答:1

我需要使用 p3 从数据中打印 5,但我不知道它是什么。

我设法找到 printf("%d,", ((*(p3))+4));是答案,但我仍然不知道它是如何工作的。

我可以猜测 (*p3)[3][2] 从 dat[0][3][2] 指向 6

我是初学者,不知道先从哪里开始研究。

#include <stdio.h>

void main() {
    int dat[2][3][2] = { {{1,2},{3,4},{5,6}},{{7,8},{9,19},{11,12}} };
    int* p1, * p2, (*p3)[3][2];
    p1 = dat;
    p2 = dat[0][1];
    p3 = dat;
    pr



    printf("%d," ,dat[0][2][0]);
    printf("%d,", *(*(*(p3))+4)); //this is the answer  it prints 5

        return 0;
}

c pointers
1个回答
0
投票

*x
与 x[0] 完全相同。
*(x+y)
与 x[y] 相同。您的解决方案
*(*(*(p3))+4)
可以重写为
p3[0][0][4]

© www.soinside.com 2019 - 2024. All rights reserved.