请c语言高手帮忙解释一下!!!

#include"stdio.h"typedefunion{longx〔2〕;inty〔4〕;charz〔8〕;}atx;typedefstructaa{longx〔2〕... #include "stdio.h"
typedef union{ long x〔2〕;
int y〔4〕;
char z〔8〕;} atx;
typedef struct aa{ long x〔2〕;
int y〔4〕;
char z〔8〕; } stx;
main()
{printf("union=%d,struct aa=%d\n",sizeof(atx),sizeof(stx));}
A)union=8,struct aa=8
B)union=8,struct aa=24
C)union=24,struct aa=8
D)union=24,struct aa=24
正确答案: B
请大家帮忙解释一下!!!谢谢!!!
展开
 我来答
aaa833
2009-08-19 · TA获得超过717个赞
知道小有建树答主
回答量:841
采纳率:0%
帮助的人:639万
展开全部
union 中,所有变量占用的是同一起始地址的内存空间,同一时间只能存在一个;所以总大小就是其中占空间最大的变量。
struct中,内存片段是规范化的,
typedef struct aa{
long x;//8个字节
int y; //8个字节(这个每个编译器都不一样,按题目的意思应该是8个)
char z; //1个字节,规范化填充为8个字节
} stx;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式