您可以使用访问联合变量的成员。变量名和成员名之间的点运算符。
执行分配时,联合内存位置将用于该成员,直到执行另一个成员分配。
尝试访问不占用内存位置的成员会产生意外结果。
以下程序演示如何访问联合成员:
union val { int int_num; float fl_num; char str[20]; }; union val test; test.int_num = 123; test.fl_num = 98.76; strcpy(test.str, "hello"); printf("%d\n", test.int_num); printf("%f\n", test.fl_num); printf("%s\n", test.str);
最后一个赋值覆盖了以前的赋值,这就是str存储一个值并且访问int-num和fl-num没有意义的原因。