准确的说,sizeof是c语言中的单目操作符,用于求其操作数的的类型的长度,以字节为单位。
int a;
1、sizeof(a) ;
2、sizeof(int);
1返回int类型的变量在内存中所占的字节数,
2返回整形变量的字节数。二者在数值上相同。其结果依赖于所处的环境。
若其操作数为数组名时,结果返回数组的长度,以字节为单位。
int a[10] = {0};
printf_s("%d\n",sizeof(a));
printf_s("%d\n",sizeof(a[0]));
vs2008测试结果为40,4。
需要注意的是sizeof对指针变量的返回值。指针记录了另一个对象的地址。既然是来存放地址的,那么它当然等于计算机内部地址总线的宽度。所以在32位计算机中,一个指针变量的返回值必定是4(注意结果是以字节为单位),可以预计,在将来的64位系统中指针变量的sizeof结果为8。
char *p = "hello";
printf_s("%d\n",sizeof(p));