//验证 1.内存对齐
/*
#include<iostream>
using namespace std;class CBase
{int a;  //这里的内存对齐和struct对齐很像char p; //前面定义了一个int型变量,char q; //后面定义一个或两个char型的话,都是占用8字节
};int main()
{CBase class_1;cout << sizeof(class_1) << endl;    //输出8字节return 0;
}
*///验证 2.空类占1字节
/*
#include<iostream>
using namespace std;class A
{};int main()
{A class_1;cout << (void*)(&class_1) << endl;cout << sizeof(class_1) << endl;return 0;
}
/*
输出1字节
可以看到一个空类对象的大小1.
一个空类对象的大小是1,为什么不是0?
初学者肯定会很烦恼?类A明明是空类,它的大小应该为0,为什么编译器输出的结果为1呢?
这就是实例化的原因(空类同样被实例化),每个实例在内存中都有一个独一无二的地址,
为了达到这个目的,编译器往往会给一个空类隐含的加一个字节,
这样空类在实例化后在内存中得到了独一无二的地址,所以class_1的大小是1.
*///验证 3.成员函数不占用类对象的内存空间
/*
#include<iostream>
using namespace std;class A
{
public:void func1() {};void func2() {};void func3() {};
};int main()
{A class_1;cout << sizeof(class_1) << endl;return 0;
}
/*
虽然我们给类A添加了三个成员函数,但这里输出依然是1字节
说明成员函数不占用类对象的存储空间
*///验证 4.成员变量占用类对象的内存空间
/*
#include<iostream>
using namespace std;class A
{
public:void func1() {};void func2() {};void func3() {};char a;
};int main()
{A class_1;cout << (void*)(&class_1) << endl;  //查看class_1的地址cout << sizeof(class_1) << endl;    //依然是占用1字节class_1.a = 'c';return 0;
}
/*
这里输出仍然是1字节
没有char成员变量的时候,编译器往往会给一个空类隐含的加一个字节
有了一个字节的char型成员变量的话,编译器就不会给类加字节了
但char还是占一个字节,不知道你能不能看明白
*///验证 5.int型成员变量占4字节
/*
#include<iostream>
using namespace std;class A
{
public:void func1() {};void func2() {};void func3() {};int a;
};int main()
{A class_1;cout << (void*)(&class_1) << endl;  //查看class_1的地址cout << sizeof(class_1) << endl;    //这时就占用4字节class_1.a = 12;return 0;
}
*/

C++:类占用的字节内存相关推荐

  1. 在c++中一个空类占用的字节数

    结论:  在c++中一个空类占用:1Byte. 有的同学认为一个空类占0Byte,那么定义一个空类时,他存放到哪里呢?为此,在c++编译器中,为空类设置了占用1Byte内存. #include < ...

  2. java char unicode_在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用______字节内存空间,这样,无论是中文_搜题易...

    下列程序的功能是:输入一个姓名,程序运行后,输出"姓名Welcome you!".例如,输出"张三Welcome you!".请在下面横线处填入正确的方法名,使 ...

  3. java char占用多少字节_Java虚拟机:Java对象大小、对象内存布局及锁状态变化

    一个对象占多少字节? 关于对象的大小,对于C/C++来说,都是有sizeof函数可以直接获取的,但是Java似乎没有这样的方法.不过还好,在JDK1.5之后引入了Instrumentation类,这个 ...

  4. Java中的String类占用多大的内存

    写在前面 对于Java中的String类占用多大的内存空间这个问题,是最近面试中问的比较多的一个问题.很多小伙伴的回答的都不是很正确,有说不占空间的,有说1个字节的,有说2个字节的,有说3个字节的,有 ...

  5. 独家|测量、建议、快速上手!你所使用的Python对象占用了多少内存?(附代码)...

    作者:Gigi Sayfan 翻译:吴振东 校对:吴金笛 本文约3300字,建议阅读10分钟. 本文将介绍多种Python对象分别所占用的内存,并解释所选择的测量方法和函数,为节省内存提供建议. Py ...

  6. 一个Java对象到底占用多大内存?

    最近在调研MAT和VisualVM源码实现,遇到一个可疑问题,两者计算出来的对象大小不一致,才有了这样疑惑. 一个Java对象到底占用多大内存? 为了复现这个问题,准备了4个最简单类: class A ...

  7. java字节数_Java各种类型占用的字节数

    数据类型 大小(二进制位数) 范围 默认值 byte(字节) 8 -128 - 127 0 shot(短整型) 16 -32768 - 32768 0 int(整型) 32 -2147483648-2 ...

  8. jvm(6)-java类文件结构(字节码文件)

    [0]README 0.1)本文部分文字描述转自 "深入理解jvm",旨在学习类文件结构  的基础知识: 0.2)本文荔枝以及荔枝的分析均为原创: 0.3)下面的截图中有附注t*编 ...

  9. java占用内存多大_[转帖]一个Java工具到底占用多大内存?

    一个Java工具到底占用多大内存? https://www.jianshu.com/p/194b745884a5 最近在调研MAT和VisualVM源码实现,遇到一个可疑问题,两者盘算出来的工具巨细不 ...

最新文章

  1. centos静态IP配置方法
  2. IAR8.32.4 for ARM安装预注册教程
  3. localStorage
  4. 为什么说 Serverless 引领云的下一个十年?
  5. 效能改进之项目例会导入实践
  6. r psm倾向性匹配_南瓜香料指标psm如何规划季节性广告
  7. mysql xtrabackup 遭遇严重bug
  8. python有多少种模块_python如何查看有哪些模块
  9. 格密码教程(二):格的基本定义,格基转换
  10. 【华为云技术分享】python教程:猴子补丁
  11. php 工厂模式作用,PHP工厂模式的好处
  12. 数据库工作笔记013---如果存在表则删除表然后创建Mysql_drop table
  13. Android Studio 2.3的各种新增疑难杂症
  14. Shell脚本中date的用法小结
  15. mysql在文件里修改用户_mysql用户密码修改,用户添加、删除、设置权限及源文件恢复数据库...
  16. 【手记】解决Intel Management Engine Interface黄色感叹号
  17. 利用模拟低通滤波器设计带通、带阻、高通模拟滤波器
  18. 简繁体unicode、gbk对照表
  19. 【花雕体验】19 合宙ESP32_C3点亮WS2812B硬屏
  20. C++——计算x的n次幂

热门文章

  1. UEditor在线编辑器配置及注意事项
  2. UI标签库专题十一:JEECG智能开发平台 DictSelect (数据字典下拉选择框)
  3. MySQL基础篇(07):用户和权限管理,日志体系简介
  4. Java基础篇(01):基本数据类型,核心点整理
  5. 数据结构基础(6) --顺序栈的设计与实现
  6. Python数据清洗基本流程
  7. ES6之函数的扩展(二)
  8. 洛谷P2320 [HNOI2006]鬼谷子的钱袋
  9. 【LaTeX】Lyx/LaTeX笔记01
  10. PC HARDWARE SHARE NO.4