struct _THUNDER { int iVersion; char cTag; char cAdv; int iUser; char cEnd; } Nowcoder; int sz = sizeof(Nowcoder);
11
12
13
16
|----------int----------|
|char|char|char|char|
所以在编程的时候也要注意,最好把相同类型的放一起,这样能节省空间,该题中的两个int如果放一起写,总容量应该就是12了
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
【解析】内存对齐的规则:
1.第一个成员必须是从0位置开始偏移
2.后面的成员从成员的大小和对齐模数相比取小的整数倍的的地方(对齐模数默认是 8)
3.最后要对结构体整体进行对齐:成员中最大的那一个和对齐模数相比取小的整数倍
这里结构体具体的每个成员所在位置:
int iVersion; 0 ~ 3
char cTag; 4 ~ 4
char cAdv; 5 ~ 5
int iUser; 8 ~ 11
char cEnd; 12 ~ 12
更多C++基础专业知识讲解,点击链接即可查看
https://www.nowcoder.com/link/zxyl-cpp12