问题是这样的:
#include <stdio.h>
int main()
{
int a[2][2] = { {6, 2}, {3, 4} };
int (**p)[2];
p = a;
for (int i = 0; i < 4; i++) {
printf("%p\n", (*p + i));
printf("%d\n", *(*p + i));
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我将其解释int(**p)[2];为一个指向大小为 2 的一维数组的双指针。
我得出这个结论是因为:
int *p[2];表示大小为 2 的整数指针数组。int (*p)[2];表示指向大小为 2 的一维数组的整数指针。所以,
int **p[2];表示大小为 2 的整数双指针数组。int (**p)[2];表示指向大小为 2 的一维数组的整型双指针。1、2、3 和 4 项陈述中哪些是正确的,哪些需要更正?
因此,这段代码的输出是什么?
我在这里尝试过。