测量普通变量
| 被测量 | value |
|---|
| char | 1 |
| short | 2 |
| int | 4 |
| double | 8 |
| 数组 | 数组内容个数+1(结尾有“\0”) |
| 传入函数的数组 | 4,是一个指针,指向这个数组 |
测量类对象
| 被测量 | value |
|---|
| 空 | 1 |
| char | 1,字节对齐 |
| short | 2,字节对齐 |
| int | 4,字节对齐 |
| double | 8,字节对齐 |
| 普通函数 | 不占字节 |
| 几个虚函数 | 有一个指向虚函数表的指针,只占用一个指针,32位机器是4 |
| 静态成员变量 | 不占字节,共享同一个静态存储区,不在每一个实例中 |
| 一次虚拟继承 | 4,指向父类指针 |
测量联合体union
两点原则:
1. 等于占用空间最大的一个成员的大小;
2. 最大值需要字节对齐,等于最小成员的倍数
| 被测量 | value |
|---|
| 空 | 1 |
| char | 1 |
| char[13] | 13 |
| short | 2 |
| int | 4,字节对齐,安照union里面最小字节的倍数来对齐。 |
| double | 8,字节对齐,安装union里面最小字节的倍数来对齐。 |
参考推荐
参考来自《c++程序员面试秘笈》面试题13到面试题20。
关于计算机内存什么是代码区、常量区、静态区(全局区)、堆区、栈区,很好的一个博客推荐:
https://blog.youkuaiyun.com/u014470361/article/details/79297601