C++枚举类型enum

什么是枚举

枚举(enum)

C/C++语言可以使用 #define 和 const 创建符号常量,enum也可以做到,并且很方便的用来定义常量。

定义: enum    类型名(枚举类型名称)     { 枚举元素列表 };
类似于我们定义一个新的数组:int  Array [20] (创建一个容量为 20 的一维整型数组,数组名称为 Array);

enum是定义了一个新的类型
 
 

进一步了解枚举

接下来我将通过举例来帮助你更好的了解枚举(enum)

彩虹有七种颜色:红、橙、黄、绿、蓝、靛、紫。

//用枚举定义彩虹
enum rainbow {red,orange, yellow, green, blue, violet, indigo, violet};	//(枚举元素为常量)

这条语句有两个作用:

  • rainbow成为新类型的名称;rainbow被称为枚举
  • red, orange, yellow 等将作为常量符号,默认对应的值为0~6(从0开始默认赋值,依次递增1)
     
     

枚举的规则

//用枚举定义彩虹
enum rainbow {red,orange, yellow, green, blue, violet, indigo, violet};

//用枚举名来声明这种类型的变量
rainbow color;

color = blue;	//这是合法的
color = 100;	//这是非法的
color = 4;		//这是合法的

rainbow 变量受限制,只有默认的 0~6 共七个值,将取值范围之外的值赋值给color是非法的

 
 
设置枚举的值

//可以用赋值运算符来显示地设置枚举量的值
enum rainbow {red = 1,orange, yellow = 4, green, blue, violet = 8, indigo, violet};

没有被赋值的枚举量将比其前面的枚举量大1

orange = 2     green = 5     indigo = 9     violet = 10
 

//可以设置多个相同的枚举量
enum rainbow {red,orange = 0, yellow, green = 1, blue};

red 和 orange 为 0,yellow 和 green 为 1,blue 为 2

 
 

枚举的取值范围

C++通过强制转换,增加了可赋值给枚举变量的合法值
即:每个枚举都有取值范围,通过强制转换,可以将取值范围内的任何整数赋值给枚举变量,即便这个值不是枚举值

 
枚举取值范围定义如下:

上限:知道枚举量的最大值,找到大于这个最大值的 2^n 的数并将它减1
下限:知道枚举量的最小值,找到小于这个最小值的 2^n 的数并将它减1(如果最小值不小于0,则下限取值范围为0)

 
示例如下:

enum Num {one  = 1, two = 2, eight = 8};
Num  ten;

Num已知最大值为 8,则在 2^n 中比这个数大的最小值为16,即取值上限为 16 - 1 = 15
所以Num的取值范围为 0 ~ 15

若 one = - 5,即枚举最小量为-5,则取值下限为 -(8-1) = -7

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值