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
列举所有情况
保证取值的安全性