枚举、联合

枚举enum、联合union成员共用一个变量缓冲区

enum是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型

有些变量的取值被限定在一个有限的范围内

枚举值是常量不是变量,不能再对它赋值

0,1,2,3,4 …

enum weekday{sun,mon,tue,wed,thu,fri,sat};

weekday a, b;

enum weekday{sun,mon,tue,wed,thu,fri,sat}a,b;

enum {sun,mon,tue,wed,thu,fri,sat}a,b;

只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如一定要把数值赋予枚举变量,则必须用强制类型转换。

a=(enum weekday)2; a = (weekday)2;

即 a=tue;

inline week operator++( week &rs, int ) { //重载后++ a++时还需判断是否超出范围

week oldWeek = rs;

rs = (week)(rs + 1);

return oldWeek;

}

union 所有成员共用一个空间,并且同一时间只能储存其中一个成员变量的值

union foo

{

int I;

char c;

double k;

}

union foo bar; 8个字节

{char s[10]; int a; } 10、 4 所以占12个字节

union的成员不可以为静态、引用,如果是自定型态的话,该自订型态成员不可以有建构函式、解构函式或是复制指定运算子。

对一个成员赋值,其他成员的值就不存在了。

用开怀的笑容去迎接每一个黎明,

枚举、联合

相关文章:

你感兴趣的文章:

标签云: