谁能告诉我为什么data.i
并且data.f
被破坏了?该代码来自的网站试图解释它,但使用了错误的语法和许多拼写错误,所以我想知道这里是否有人可以帮助我。
#include <stdio.h>
#include <string.h>
union Data
{
int i;
float f;
char str[20];
};
int main( )
{
union Data data;
data.i = 10;
data.f = 220.5;
strcpy( data.str, "C Programming");
printf( "data.i : %d\n", data.i);
printf( "data.f : %f\n", data.f);
printf( "data.str : %s\n", data.str);
return 0;
}
上述代码编译执行后,产生如下结果:
data.i:1917853763
data.f:4122360580327794860452759994368.000000
data.str:C编程