C笔记 联合体 枚举

来源:互联网 发布:淘宝卖中药材 编辑:程序博客网 时间:2024/06/10 03:12

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

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

原创粉丝点击