#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类型