帮忙看看下面的输出结果是什么,要详细的讲解,谢谢!! 5

voidmain(){union{intcount[2];char[4];}un;inti;charletter=6;for(i=0;i<4;i++)un.ch[i]=l... void main()
{union{int count[2];char[4];} un;
int i;
char letter=6;
for(i=0;i<4;i++) un.ch[i]=letter++;
for(i=0;i<2;i++) printf("%d:%x,",i,un.count[i]);}
展开
 我来答
双鱼座大叔0309
2012-06-27 · TA获得超过255个赞
知道小有建树答主
回答量:209
采纳率:100%
帮助的人:164万
展开全部
union 共用体里面各字段共享内存,所以char ch[4]; ch的首地址和count[0]的地址是一样的
ch[0]=6,ch[1]=7,ch[2]=8,ch[3]=9
小端: count[0] = 0x09080706;
大端: count[0] = 0x06070809;
count[1]内存数据未知 是随机值
追问
答案是 0:706,1:908
我们还没学过大端小端。能不能就这个答案给个详细的讲解啊,谢谢
xiangsheng_sg
2012-06-27 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:206
采纳率:0%
帮助的人:96.6万
展开全部
首相该程序有个笔误,UNION{int count[2];char ch[4];} un;
由于联合是公用存储空间,count[0] = ch[1]*256 + ch[0], count[1] = ch[3]*256 + ch[2]。
ch[0] = 6, ch[1] = 5, ch[2] = 4, ch[3] = 3.。count[0] = 1286, count[1] = 772。
追问
答案是  0:706,1:908
这是书上的题目,没打错啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vwen_com
2012-06-27 · 超过21用户采纳过TA的回答
知道答主
回答量:83
采纳率:0%
帮助的人:70.9万
展开全部
union{int count[2];char ch[4];}un;
这行代码应该是这样的.
输出为:
0:9080706,1:cccccccc,
追问
1:cccccccc从何而来?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式