C语言中sizeof用法总结

编辑摘自:
http://blog.sina.com.cn/s/blog_4913c1f301000bip.html
在VC中,sizeof有着许多的用法,而且很容易引起一些错误。下面根据sizeof后面的参数对sizeof的用法做个总结。
一、参数为数据类型或者为一般变量。
例如sizeof(int),sizeof(long)等等。这种情况要注意的是不同系统系统或者不同编译器得到的结果可能是不同的。例如int类型在16位系统中占2个字节,在32位系统中占4个字节。
二、 参数为数组或指针
下面举例说明.
int a[50];  //sizeof(a)=4*50=200; 求数组所占的空间大小
int *a=new int[50]; // sizeof(a)=4; a为一个指针,sizeof(a)是求指针的大小,在32位系统中,当然是占4个字节。
三、参数为结构或类
Sizeof 应用在类和结构的处理情况是相同的。
但有两点需要注意:
第一 、结构或者类中的静态成员不对结构或者类的大小产生影响,因为静态变量的存储位置与结构或者类的实例地址无关。
第二 、没有成员变量的结构或类的大小为1,因为必须保证结构或类的每一 个实例在内存中都有唯一的地址

你可能感兴趣的:(C和C++语言)