一、问题的引出
《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