5、枚举

一、枚举

1、基本概念

三个的关系:枚举类型、枚举值、枚举变量

enum工具提供了另外一种创建符号常量的方式,某种程度上可代替const的作用。

enum spectrum {red,orange,yellow,green,blue,violet,ultraviolet};

spectrum:枚举,可以看作是一个新类型的名称
red,orange,yellow,green,blue,violet,ultraviolet:符号常量,对应的值为0-7,当然可以自定义初始值,没定义值的时候,默认后面比前面大1

spectrum band;//band 为枚举变量

2、特殊属性

①只能将枚举值赋值给枚举变量,因为对于枚举只定义了赋值运算符。

band = orange;   //valid
++band; //not valid
band = orange + red ;

②枚举量是整型,可被提升为int类型,但是int类型不能自动转化为枚举类型

int color = blue; //valid
band = 3;//invalid
color = 3 + red ;//valid

③可以通过强制类型转换来实现合法值的转换

band = spectrum(3)

注意:如果值不合法的话,虽然不会报错,但是可能不会得到想要的结果。

3、设置枚举量的值

①指定的值必须为整数
②可以创建多个值相同的枚举量、

enum {zero,null=0,one,numero_uno=1};

4、枚举的取值范围

enum bits{one=1,two=2,four=4,eight=8};
bits myflag;
myflag=bits(6);//valid

6它不是枚举值,但是他在枚举定义的范围内。
上限值:大于枚举量最大值的、最小的2的次幂,再减去1
下限值:如果最小值不小于0,则下限为0,否则方式和上限值一样,但加上负号,如最小为-6,=》-8+1=-7

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值