1. 对于类和对象

    Class A; A obj;
    

    sizeof(A)==sizeof(obj)
    

    一个类中,虚函数、成员函数(包括静态与非静态)和静态数据成员都是不占用类对象的存储空间的。
    对象大小= 虚函数表指针(4个字节) + 所有非静态数据成员大小 + 对齐字节大小
    注意:

    • 如果没有定义虚函数,则不用计算虚函数表指针
    • 对齐字节大小符合规律:
      • 结构体变量的首地址能够被其最宽基本类型成员的大小所整除,基本类型是指char、short、int、float、double这样的内置数据类型;
      • 结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节(internal adding)
      • 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节(trailing padding)。
      • 如果结构体的成员是复合类型(如结构体),那么计算最宽基本类型时,是看复合类型的成员,而不是将复合类型看成一个整体。
  2. 对于空类,sizeof大小为1
    空类同样可以被实例化,每个实例在内存中都有一个独一无二的地址,为了达到这个目的,编译器往往会给一个空类隐含的加一个字节,这样空类在实例化后在内存得到了独一无二的地址.

  3. 当sizeof的参数是数组名时,计算的是整个数组的存储大小;当sizeof的参数是指针时,计算的是指针的大小(8字节,64位系统)。

参考链接:https://blog.csdn.net/muzilanlan/article/details/27075619

C++中sizeof问题相关推荐

  1. c++ 中sizeof 与数组形参

    c++ 中sizeof 与数组形参 sizeof,返回表达式或类型名所占用的字节数. int x[10];int* p = x;cout << sizeof(x) << end ...

  2. [转]C++中sizeof(struct)怎么计算?

    版权属于原作者,我只是排版. 1. sizeof应用在结构上的情况 请看下面的结构: struct MyStruct { double dda1; char dda; int type; }; 对结构 ...

  3. C++中sizeof详解

    为什么80%的码农都做不了架构师?>>>    sizeof并非一个函数,而更像是一个特殊的宏,它是在编译期间求值的.如以下的题目: int a = 0; cout << ...

  4. C++中sizeof和strlen

           sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数.       strlen所作的仅仅是一个计数器的工作,它从内存的某个 ...

  5. c/c++中sizeof()、strlen()、length()、size()详解和区别

    c/c++中获取字符串长度.有以下函数:size().sizeof() .strlen().str.length(); 一.数组或字符串的长度:sizeof().strlen() 1.sizeof() ...

  6. C/C++中 sizeof 的用法总结

    更多精彩内容请访问我的新博客站点 文章目录 sizeof 运算符 不同数据类型所占的内存大小 共用体的大小 结构体的大小 嵌套结构体的大小 混合结构体的大小 类对象的大小 sizeof 运算符 需要注 ...

  7. C/C++中 sizeof 详解

    摘要: Sizeof的作用非常简单:求对象或者类型的大小.然而sizeof又非常复杂,它涉及到很多特殊情况,本篇把这些情况分门别类,总结出了sizeof的10个特性: (0)sizeof是运算符,不是 ...

  8. cpp中sizeof与指针

    一直不清楚c++的sizeof,现在通过实验得到了一些了解. 1 #include<iostream> 2 3 using namespace std; 4 5 class A{ 6 pr ...

  9. java中sizeof函数,C语言中,sizeof运算符有什么作用?

    满意答案 minwoo1 2014.11.18 采纳率:54%    等级:9 已帮助:415人 通常用来计算一个变量或者类型的大小的,单位是字节 譬如sizeof(char)==1,sizeof(i ...

最新文章

  1. 回首这一年,其实我还是一样!
  2. 经典的两数互换【指针】
  3. 如何招聘一个优秀的产品经理?Google主管的六条心得
  4. git - 搭建最简单的git server
  5. Arts 第四周(4/8 ~ 4/14)
  6. Objective-C Runtime 运行时之四:Method Swizzling
  7. nginx 超时时间_Linux从入门到放弃 Nginx
  8. eva每一集片尾曲是谁唱的_evaTV版的片尾曲是不是每集的都不一样啊?
  9. 团队管理(3)---有效降低企业员工离职率
  10. L1-047 装睡-PAT团体程序设计天梯赛GPLT
  11. bzoj 1632: [Usaco2007 Feb]Lilypad Pond(BFS)
  12. MySql中创建用户以及设置其操作权限
  13. 安装Eclipse完整版 配上百度云链接
  14. 善用佳软推荐几个很好用的软件以备使用
  15. 位移密码加密、解密matlab实现
  16. android编程如何调整屏幕亮度,Android编程设置屏幕亮度的方法
  17. android 应用市场 审核速度,安卓市场上传APP软件要多长时间审核?
  18. macos 微信小助手
  19. 三星手机S8曝光 新机发布或推迟
  20. 华为v2服务器系统安装系统,华为服务器RH 2288H v2安装系统

热门文章

  1. python推荐入门书籍-学python入门看什么书
  2. python菜鸟编程-Python3 函数
  3. requests库怎么安装在python中-python安装requests库的实例代码
  4. 大学python用什么教材-数据结构 Python语言描述 大学教材
  5. python中的format什么意思中文-Python中.format()常见的用法
  6. python真的这么厉害吗-Python为什么这么厉害?——Python ,能用来做什么
  7. python简介怎么写-python简历模板范文
  8. python内置collections模块的使用
  9. c#和mysql之间的类型_【SqlServer数据类型、C#数据类型、SqlDbType】对应关系及转换...
  10. 井下三专两闭锁的内容_矿用高压防爆开关:煤矿井下高低压防爆开关五防电子锁保护装置...