来自与某小伙伴的提问,说sizeof &数组名 和sizeof 数组名都输出数组的大小,我当时就震惊了!
&数组名 应该是数组的指针啊,sizeof 指针 肯定是指针的大小啊。然后他截图给我看,他说用的是VC6++的编译器!
不是吧,数组名的值虽然是数组首地址,但它并不是指针变量啊,你可以理解一下下面的代码,前者是5个int的长度,后者才是单个指针变量的长度
int a[5];
int *p = a;
printf("sizeof(a) = %d sizeof(p) = %d\n", sizeof(a), sizeof(p));