typedef union{
int a;
char b[10];
float c;
} Union;
int main()
{
Union x,y={100};
x.a=10;
strcpy(x.b,"hello");
x.c=21.50;
printf("%d\t%s\t%f\n",x.a,x.b,x.c);
printf("%d\t%s\t%f\n",y.a,y.b,y.c);
return 0;
}
我有这个程序,我可以在其中制作除“xa”和“yc”之外的所有输出。这两个输出都有些混乱。我确实知道与 int 相比,浮点数以不同的方式存储在内存中,但我仍然无法找出输出的可能原因。
任何帮助将不胜感激。
输出是
110792132 21.500000
100 d 0.000000