【共读Primer】29.[4.9] sizeof运算符 Page139

返回一条表达式或一个类型名字所占字节数。

sizeof(type)
sizeof expr

Sales_data data, *p;
sizeof(Sales_data);    // 存储Sales_data类型的对象所占的空间大小
sizeof data;               // data的类型的大小,即sizeof(Sales_data)
sizeof p;                    // 指针所占的控件大小
sizeof *p;                  // p所指向的控件大小,等同于sizeof(Salesman)data)
sizeof data.revenue;  // Sales_data的revenue成员对应类型的大小
sizeof Sales_data::revenue

我们之前经常强调指针在使用前需要初始化。

这里给大家说一个特别的例子,sizeof计算指针指向对象的时候是否初始化并不会有问题产生。

1.对char或者类型为char的表达式执行sizeof运算,结果得1
2.对引用类型执行sizeof运算得到被引用对象所占空间的大小
3.对指针执行sizeof运算得到真真本身所占空间大小
4.对解引用指针执行sizeof运算得到指针指向的对象所占控件的大小,指针不需要有效
5.对数组执行sizeof运算得到整个数组所占控件的大小,等价于对数组中所有的元素各执行一次sizeof运算并将所得结果求和。注意,sizeof运算不会吧数组转换成指针来处理
6.对string对象或vector对象执行sizeof运算只返回该类型固定部分的大小,不会计算对象中的元素占用了多少空间。

posted @ 2018-08-20 09:02  chattyku  阅读(124)  评论(0编辑  收藏  举报