联合和结构类似,但是他的行为方式和结构不同。联合的所有成员引用的是内存中的相同位置。当你想在不同时刻把不同的东西存储于同一个位置时,就可以使用联合了。
union { float f; int i; }fi; int main() { fi.f = 3.14159; printf("%d",fi.i); system("pause"); return 0; }
首先把PI的浮点值表示形式存储于fi,然后把这些相同位当做一个整型值打印输出。注意这两个成员所引用的位相同,仅有的区别在于每个成员的类型决定这些这些位该怎么解释。
这里运行结果:1036831949