我的c语言怎么会出现0.0000000

#include <stdio.h>
void main()
{
union data
{
int num;
float score;
char *name;
}a;
a.score=98.5;
a.name="China";
a.num=901;
printf("%f\n",a.score);
}
这编译出输出0.00000000这是怎么回事

这是很正常的,因为这三个元素占用的同一个地址空间,对num的赋值把之前的内容都覆盖掉了。再输出score实际上输出的是num在内存中的值的浮点数形式表示。这是union的特性。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-09
不能用union类型,要改成struct类型

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网