gpt4 book ai didi

c++ - 结构成员的结构大小和地址

转载 作者:太空宇宙 更新时间:2023-11-04 06:25:38 24 4
gpt4 key购买 nike

<分区>

关于下面代码的2个问题:

1 为什么struct b 的大小是12 字节(输出的第2 行)?我能理解为什么 a 是 12 个字节(在 4 字节边界上对齐 k),但是 b 不应该是 9 个字节而不是 12 个字节吗?

2 为什么使用 & 运算符获取 char 成员的地址未显示有效地址? (最后两行中间输出)

#include<iostream>
using namespace std;
struct a
{
int i;
char j;
int k;
};
struct b
{
int i;
int k;
char j;
};
int main()
{
a s1;
b s2;

cout<<sizeof(a)<<endl;
cout<<sizeof(b)<<endl;
cout<<sizeof(int)<<endl;
cout<<sizeof(char)<<endl;
cout<<&s1.i<<'\t'<<&s1.j<<'\t'<<&s1.k<<endl;
cout<<&s2.i<<'\t'<<&s2.j<<'\t'<<&s2.k<<endl;
}

输出:

12
12
4
1
0x28ff14 - 0x28ff1c
0x28ff08 4A 0x28ff0c

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com