关于C语言中的共用体的问题

下面是谭浩强书中的一段程序unionDate{inti;charch;floatf;}a;a.i=97然后使用输出语句输出printf("%d",a.i);(输出整数97... 下面是谭浩强书中的一段程序
union Date
{ int i;
char ch;
float f;
} a;
a.i=97
然后使用输出语句输出
printf("%d",a.i); (输出整数97)
printf("%c",a.ch); (输出字符‘a’)
printf("%f",a.f); (输出实数0.000000)
我没有看懂 为什么最后一个printf("%f",a.f)语句输出的是0.000000,这是为什么呢?
展开
 我来答
szdxl
2011-08-15 · TA获得超过773个赞
知道答主
回答量:149
采纳率:0%
帮助的人:179万
展开全部
共用体定义:在进行某些算法的C语言编程的时候,需要使几种不同类型的变量存放到同一段内存单元中。也就是使用覆盖技术,几个变量互相覆盖。
也就是共用体的占用内存就是其中占用内存最大的数据类型。所以i,ch,f在同一个内存空间中。int和char ascii码的不同表现形式,只是形式不同,内存中的二进制是相同的。那么int怎么变成float型呢,这又没有一个ascii码表进行转换,所以,f就是0.00000了
QQ469985793
2011-08-15 · TA获得超过153个赞
知道答主
回答量:126
采纳率:100%
帮助的人:99.8万
展开全部
学习了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式