关于C语言的一个题目,如图,请教详细解释,谢谢.

答案已附上,求解释.... 答案已附上,求解释. 展开
 我来答
丛念烟5d
2014-04-16 · TA获得超过133个赞
知道小有建树答主
回答量:132
采纳率:0%
帮助的人:76.9万
展开全部
这是联合体,共用一段内存,int是占2个字节,long占4个字节,char占1个字节。
如题 s->i[0] = 0x39, s->i[0] = 0x38,
假如内存地址如下,则:
地址 0x0000 0x0001 0x0002 0x0003
i[2]: 9 3 8 3

而c[4]则对应这4个地址,c[0]当然是9,选B.
追问
还是不太明白,为什么是下面这个????
地址 0x0000 0x0001 0x0002 0x0003
i[2]: 9 3 8 3
求详细解释
追答
int 类型占2个字节,数据存储一般是低位在前,高位在后。
如:s->i[0] = 0x39,按完整写法就是 0x0039, 39存在前地址,00存在后地址。
地址 0x0000 0x0001 0x0002 0x0003
i[2]: 0x39 0x00 0x38 0x00
这个题我一时疏忽做错了,是39,选A.
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-04-16
展开全部
联合体,i和c共享相同的内存,c所使用的内存就是i[0]所用的内存,由于i[0]=0x39,也就是十六进制的39(十进制的57),所占用的内存就是i[0]的最后一位,因此c[0]=0x39,c[1]=c[2]=c[3]=0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式