C笔记 联合体枚举

xiaoxiao2021-02-28  74

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

列举所有情况 保证取值的安全性

转载请注明原文地址: https://www.6miu.com/read-62512.html

最新回复(0)