C++面试题6:sizeof 使用规则及陷阱
cout << sizeof(int) << endl; //32位机上int长度是4cout << sizeof(1==2) << endl; //bool类型,相当于cout << sizeof(bool) << endl;1
陷阱:
int a=0;
cout << sizeof(a=3) << endl; //sizeof作用范围内,也就是括号里面的内容不能被编译,而是被替换成类型,=操作符返回左操作数的类型,所以a=3相当于int 4cout << a << endl; //输出0
结论:不要把sizeof当成函数,也不要看作一元操作符,把他当成一个特殊的编译预处理。
sizeof两种用法:
sizeof(object)
对对象使用sizeof(typename)
对类型使用,这里要注意一定要使用括号。
cout << sizeof int << endl; 错误,要加上()
cout << sizeof 2 << endl; 正确
结论:无论sizeof要对谁取值,最好加上()
数据类型的sizeof
32位C++中的基本数据类型,也就是char,short int(short), int, long int(long), float, double, long double
大小分别为1,2,4,4,8,10