您的位置:首页 > 其它

结构体,联合体,内存分配

2015-08-12 07:53 603 查看
#include<stdio.h>
struct a{
char x[6];
int y;
char z[6];
};
struct b{
int y;
char x[6];
char z[6];
};
union c{
char x[6];
int y;
char z[6];
};
int main()
{
printf("%d,%d,%d\n",sizeof(struct a),sizeof(struct b),sizeof(union c));
return 0;
}

运行结果:20,16,8
结构体中各元素独立占有内存空间,总空间为个元素所占空间之和。虽然 a 和 b 的元素相同,但是顺序不同,按照4字节对齐后所占的内存空间不同。
联合体中各元素共享一段内存空间,同一时间只有一个元素可以被使用。总空间为最大元素所占的空间(答案中的8是因为考虑了4字节对齐)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: