1 联合体
union MyUnion{
int x;
int y;
double z;
};
void main(){
union MyUnion union1;
union1.x =
90;
union1.y =
100;
union1.z =
23.8;
printf(
"%d,%d,%lf\n",union1.x,union1.y,union1.z);
system(
"pause");
}
打印结果
-858993459,-858993459,23.800000
可以看出x和y的值都没有。只有z的值。也就是说联合体中最后一个变量赋值才有效。 所有的变量共占用一段内存(相互覆盖),联合变量任何时刻只有一个成员存在。节省内存 联合体变量的大小=最大的成员所占的字节数 比喻:同穿一条裤子
2 枚举
enum Day{
Monday =
0,
Tuesday =
1,
Wednesday =
2,
Thursday =
3,
Friday =
4,
Saturday =
5,
Sunday =
6
};
void main(){
enum Day d = Monday;
printf(
"%#x,%d\n",&d,d);
getchar();
}
打印结果
0xb8fb24,0
列举所有情况 保证取值的安全性