一.枚举
一.枚举的定义:一系列命名的整形常量。枚举的例子有,一个星期里每一天的名称,钱币的币值等。
例1:
enum day {mon,tue,wed,thu,fir,sta,sun};//枚举中,从0开始定义,即mon=0,sun=6;
enum day qq=sun; //相当于定义了一个整型变量qq,初始化为6;
例2:
enum color {red=1,green=4,purple=7};//也可以给特定的整型值.
注意:枚举中的dollar,quarter等符号只是一个整数值的名字,不是字符串。试图将money作为字符串输出是无效的。
如果要输出字符串,可以尝试switch()语句
switch(qq) {
case mon: printf("penny");
break;
case tue: printf("nickel");
break;
case wed: printf("dime");
break;
case dollar: printf("dollar");
bresk;
default: break;
}
二.联合(union)
union,中文名“联合体、共用体”,联合体中成员共用同一块空间。
例:
union stu {
char i;
int x;
}y;
y.x = 0x11223344;
y.i = 0x55;
printf("%p\n", &y.i);
printf("%p\n", &y.x);
printf("%d\n", sizeof(y));
printf("%x", y.x);
分析:
- 联合体内成员共用同一块空间,首地址相同
- 联合体大小至少为最大成员类型大小
- 从上述程序,可看出改变某一成员,其他成员也会改变。
- 此机器为小端(高位放高地址)