不解释
#include <stdio.h>
union test
{
float f;
int i;
char c;
}a;
void main()
{
a.i = 97;
printf("%d\n", a);//97
printf("%d\n", a.i);//97
printf("%c\n", a.c);//a
printf("%f\n\n", a.f);//0.000000
a.c = 97;
printf("%d\n", a);//97
printf("%d\n", a.i);//97
printf("%c\n", a.c);//a
printf("%f\n\n", a.f);//0.000000
a.f = 97;//浮点存储,自己查看内存
printf("%d\n", a);//1120010240
printf("%d\n", a.i);//1120010240
printf("%c\n", a.c);//
printf("%f\n", a.f);//97.000000
printf("%f\n", *(float*)&a);//97.0000000
}