a为数组名。sizeof(a)和sizeof(&a)有什么区别,sizeof(a)代表什么?希望能详细回答一下。谢谢。

如题所述

sizeof(a)是把a作为一个数组类型来测试大小,结果是数组占用的字节数。
sizeof(&a)是把&a作为一个地址类型来测试大小,结果是4(64位系统里可能是8)。

数组名本身在计算中会自动转化成第一个元素的地址,但sizeof测试的时候不做计算,不转化。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-29
你可以写一些小程序来尝试一下。

#include <stdio.h>
int main()
{
int a[20];
printf("sizeof(a) = %d\n", sizeof(a));
printf("sizeof(&a) = %d\n",sizeof(&a));

return 0;
}
解释:
sizeof(a) 求的是 数组的空间大小 即 20 * 4 (int形大小)= 80
sizeof(&a),此时&a指的就是一个指向int型数据的指针,而指针的大小也是4,所以sizeof(&a) = 4
相似回答