cpp中sizeof的总结

测量普通变量

被测量 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.csdn.net/u014470361/article/details/79297601

发布了46 篇原创文章 · 获赞 0 · 访问量 820

猜你喜欢

转载自blog.csdn.net/github_38148039/article/details/104094410