您可以使用访问联合变量的成员。变量名和成员名之间的点运算符。
执行分配时,联合内存位置将用于该成员,直到执行另一个成员分配。
尝试访问不占用内存位置的成员会产生意外结果。
以下程序演示如何访问联合成员:
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没有意义的原因。