c语言高手来看看,看程序写结果,过程

 我来答
ts毛毛雨
2013-05-09 · TA获得超过157个赞
知道小有建树答主
回答量:123
采纳率:0%
帮助的人:100万
展开全部
...
程序在哪儿?
追问

追答
3     2
我的回答是基于32位XP系统下VC++6.0的:
联合体在内存中占用的空间是按照成员中最大的那个成员算的
在你这题中,最大的成员就是那个结构体了,他占了8个字节,所以你这个联合体一共占用8字节
e.in.b=1;
e.in.c=2;
e.d=3;
这三句话,前两句是给结构体中元素赋值的,由于结构体占用一个连续的地址空间,所以b占用低四字节,c占用高四字节,这两句执行后,8字节的内存存放的是1 2
接着执行e.d=3;这一句,d是一个int类型变量,四个字节,所以默认低四字节,所以,第四字节的值又被赋值为3,此时内存中存储的值为3 2
而你对a做输出操作,第一次输出a[0]低四字节,为 3(输出格式为%5d)
第二次输出a[1]高四字节,为 2(输出格式为%5d)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式