枚举、联合

2018-06-18 04:01:15来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

枚举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的成员不可以为静态、引用,如果是自定型态的话,该自订型态成员不可以有建构函式、解构函式或是复制指定运算子。

 

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

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:T7314 yyy的巧克力(钟)

下一篇:差分约束系统个人理解