可能重复:
数组名称是 C 中的指针吗?
我正在运行以下代码
#include <stdio.h>
int main()
{
int a[4] = {1,2,3,4};
int (*b)[4] = &a;
int k = sizeof(a);
printf("\n\n%d\n\n", k);
printf("a = %u, b = %u, *b = %u, data = %d", a, b, *b, **b);
return 0;
}
我得到以下输出
a = 3485401628, b = 3485401628, *b = 3485401628, data = 1
这里我将 a 的地址分配给 b,因为 b 的类型是 int**,但是在输出中我得到 a 指向的地址与 b 指向的地址相同。
这对我来说似乎有点混乱。解释是什么?