写在前面
1.sizeof是一个计算操作数内存大小的操作符,内存是4个字节
2.数组名表示首元素地址,两种情况除外
1)&数组名代表整个数组
2)sizeof(数组名)代表数组所占内存
小练习
int a[] = {1,2,3,4};
1.printf(“%d\n”,sizeof(a));
2.printf(“%d\n”,sizeof(a+0));
3.printf(“%d\n”,sizeof(*a));
4.printf(“%d\n”,sizeof(a+1));
5.printf(“%d\n”,sizeof(a[1]));
6.printf(“%d\n”,sizeof(&a));
7.printf(“%d\n”,sizeof(*&a));
8.printf(“%d\n”,sizeof(&a+1));
9.printf(“%d\n”,sizeof(&a[0]));
10.printf(“%d\n”,sizeof(&a[0]+1));
答案
1.sizeof(数组名)代表数组所占内存。16
2,sizeof(非数组名),首元素地址。4/8
3,解引用,首元素大小。4
4,第二个元素的地址。4/8
5.第二个元素大小。4
6.数组指针.4/8
7.先取地址,再解引用,所以跟1一样(好无聊的题啊哈哈哈)。16
8.指向数组的下一个元素。4
9.首元素地址大小。4
10.第二个元素的地址。4
验证时间
因为是x86环境,所以指针的大小都是4字节。如果是x64就是8字节了
好啦今天就到这里,你学废了吗?