对于sizeof(类或对象)这种形式,如classA1{ public: int a; static int b;A1();~A1();}sizeof计算类或对象在栈中分配的大小,类或对象的静态变量存放在全局数据域,是不会计算在内的,sizeof(A1)=4; 而int main(){ static int a=2; cout<<sizeof(a)<<endl;cout<<sizeof(a=8)<<endl;cout<<a<<endl ;} 结果是4 4 2, sizeof(a) sizeof(a=8)最后都替换成sizeof(int),sizeof(a=8)不参与编译,a的值不会发生变化;sizeof仅对参数或函数的类型进行计算等操作,对参数不会产生任何影响,是个关键字而不是函数;
原文:http://www.cnblogs.com/nongfutianyuan/p/4365110.html