在二维数组a[i][j]中,为什么&a[0[0]的字节数和a[0]一样是2个,而不是和a一样是4个。
#include <stdio.h>
int main() {
short int a[2][2];
a[0][0]=0x1100;
a[0][1]=0x3322;
a[1][0]=0x5544;
a[1][1]=0x7766;
printf("sizeof(a):%d\n",sizeof(a));
printf("sizeof(&a[0][0]):%d\n",sizeof(&a[0][0]));
printf("sizeof(a[0]):%d\n",sizeof(a[0]));
unsigned char *p=(unsigned char *)&a[0][0];
for (int i=0;i<8;i++) {
printf("%02X ",p[i]);
}
return 0;
}
//sizeof(a):8
//sizeof(&a[0][0]):4
//sizeof(a[0]):4
//00 11 22 33 44 55 66 77
你的题面就不对啊!&a[0[0]的字节数和a[0]一样都是指针,长度都是4(64位是8),而a是有两个指针的数组是8(64位是16)。