永发信息网

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

答案:2  悬赏:0  手机版
解决时间 2021-11-20 07:13
  • 提问者网友:却不属于对方
  • 2021-11-19 11:11
a为数组名。sizeof(a)和sizeof(&a)有什么区别,sizeof(a)代表什么?希望能详细回答一下。谢谢。
最佳答案
  • 五星知识达人网友:罪歌
  • 2021-11-19 12:39
sizeof(a)是把a作为一个数组类型来测试大小,结果是数组占用的字节数。
sizeof(&a)是把&a作为一个地址类型来测试大小,结果是4(64位系统里可能是8)。

数组名本身在计算中会自动转化成第一个元素的地址,但sizeof测试的时候不做计算,不转化。
全部回答
  • 1楼网友:人间朝暮
  • 2021-11-19 14:16
你可以写一些小程序来尝试一下。

#include
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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯