一段代码输出结构不太明白

.cpp
#include
using namespace std;

class Test {
int* l;
double d;

};

int main() {
Test cs;
cout << "double =" << sizeof(double) << endl;
cout << "int* =" << sizeof(int*) << endl;
cout <<"cs ="<< sizeof cs << endl;
cin.get();
}

结果是
double =8
int* =4
cs=16
这是为什么

c++

6个回答

double =8 double占用8个字节
int* =4 基本上指针都是4个字节
cs=16 结构体占用 16个字节,说明你的编译器按照8字节对齐内存。(早期的编译器按照4字节对齐,这个不同编译器不同)

kanlian4095
kanlian4095 谢谢啊 不过是上面那位先回答的不好意思啊
接近 2 年之前 回复

cs=16 结构体占用 16个字节,说明你的编译器按照8字节对齐内存。(早期的编译器按照4字节对齐,这个不同编译器不同)

sizeof()函数是判断大小的 即占内存多少字节 32位机int 一般都是4 double是8 cs结构体16

double =8 double占用8个字节
int* =4 基本上指针都是4个字节
cs=16 结构体占用 16个字节
是因为double用了8个字节;结构体里面存储是按照块的。
int* 只能按照8字节看齐。(向上看齐)

这是内存对齐的问题。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!

相似问题

7
一段关于轮播的jquery代码有些问题
8
同样一段代码,但是用gcc编译是通过的,用g++编译是不通过的?
3
正在学JS这书上的一段代码但是确是错的求大神们看看帮帮忙,小弟谢谢了!
4
c primer Plus上的一段代码有点看不懂
4
a.js中executeScript给某tab注入b.js,b.js计算完的值怎么传回a.js中?
1
【java】根据所学的日期类,编写一段代码,在控制台输出一个描绘当前日期的电子日历,如图
3
关于代码编写规范的疑问,spring mvc 控制层一段代码被多次复制重用,如何设计优化
4
python中如何一个程序运行两段代码块
1
apollo服务器mqtt单片机怎么往上发报文
1
数据结构中关于串的问题,对《数据结构高分笔记》中的一段代码有疑问。。新手请教..
1
C# webBrowser打开一个html网页 如何插入一段代码?
0
shell在文本的某个位置添加一段标准输出
0
同样一段代码,32位程序内存维持不变,64位却隔段时间递增8kb
4
求助python操作mysql问题,运行过一段时间,就不显示好象没有执行一样。程序代码如下。
2
关于网上很多IOCP服务器实例的一段代码,不知道写的是什么意思,希望大佬们指点迷津!
1
logback 中间有一段时间没有日志输出
3
springBoot项目开启一段时间后连接不上redis
2
萌新求问,我神经网络书上的一段代码出错不知道为什么??
3
vs 代码面板一直有一段背景代码,去不掉。
5
有一个多层嵌套的列表 A = [1,2,[3,4,[‘434’,[…]]]],请写一段代码遍历A中的每个元素并打印出来