我在使用以下代码时遇到问题:
int a[] = {1, 2, 3, 4};
fprintf(stdout,
"a : %lu\n"
"*a : %d\n"
"&a : %ld\n"
"**(&a) : %d\n",
(unsigned long int)a,
*a,
(unsigned long int)&a,
**(&a)
);
输出:
a : 140726063647232
*a : 1
&a : 140726063647232
**(&a) : 1
我知道这&a
是一个指向一维数组的指针。而&a
的类型是int (*)[4]
。我很困惑是怎么来的**(&a): 1
。