C++面试题6:sizeof 使用规则及陷阱

本文探讨了C++中sizeof的使用规则和潜在陷阱,包括对对象和类型的应用,数据类型、指针、数组、指针数组的sizeof计算,以及字符串与strlen的区别。还讨论了union、struct的对齐问题以及double对位域的影响。建议在开发中注意sizeof的使用和结构体设计时的对齐因素。
摘要由CSDN通过智能技术生成


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值