一、问题的引出
《C和指针》关于“联合”一章中提到“联合变量可以被初始化,但这个初始值必须是联合第1个成员的类型”。
#include <stdio.h>
int main(int argc, char *argv[])
{
union {
float f;
int i;
}fi = {3.14159};
printf("%d\n",fi.i);
printf("%f\n",fi.f);
return 0;
}
实验1结果:#include <stdio.h>
int main(int argc, char *argv[])
{
union {
float f;
int i;
}fi = {3};
printf("%d\n",fi.i);
printf("%f\n",fi.f);
return 0;
}
实验2结果:#include <stdio.h>
int main(int argc, char *argv[])
{
union {
float f;
int i;
}fi;
fi.f = 3.14159;
printf("%d\n",fi.i);
printf("%f\n",fi.f);
return 0;
}
实验3结果:#include <stdio.h>
int main(int argc, char *argv[])
{
union {
float f;
int i;
}fi;
fi.f = 3;
printf("%d\n",fi.i);
printf("%f\n",fi.f);
return 0;
}
实验4结果:#include <stdio.h>
int main(int argc, char *argv[])
{
union {
float f;
int i;
}fi;
fi.i = 3;
printf("%d\n",fi.i);
printf("%f\n",fi.f);
return 0;
}
实验5结果:原文地址:http://blog.csdn.net/u014633283/article/details/45872743