C++学习笔记17:枚举

枚举(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量(enumerator)的集合。如果一个变量只有几种可能的值,可以定义为枚举类型。所谓"枚举"是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。

创建枚举,需要使用关键字 enum。枚举类型的一般形式为:
enum 枚举名{ 标识符[=整型常数], 标识符[=整型常数], ... 标识符[=整型常数] } 枚举变量;

如果枚举没有初始化, 即省掉"=整型常数"时, 则第一个枚举量的值为 0,第二个枚举量的值为 1,依次类推。
例如,下面的代码定义了一个颜色枚举,变量 c 的类型为 color。最后,c 被赋值为 "blue"。
enum color { red, green, blue } c;
c = blue;

默认情况下,第一个枚举量 red 的值为 0,第二个枚举量 green 的值为 1,第三个枚举量 blue 的值为 2。

设置枚举量的值
可以使用赋值运算符显式地设置枚举量的值:
enum bites { one = 1, two = 2, four = 4, eight = 8 };
指定的值必须是整数。也可以只显式地定义其中一些枚举量的值:
enum bigstep { first, second = 100, third };
这里,first 在默认情况下为 0,后面没有被初始化的枚举量的值将比其前面的枚举量大 1,则 third 的值为 101。
最后,可以创建多个值相同的枚举量:
enum { zero, null = 0, one, numero_uno = 1 };
其中,zero 和 null 都为 0,one 和 numero_uno 都为 1。

枚举的取值范围
最初,对于枚举来说,只有声明中指出的那些值是有效的,然而,C++现在通过强制类型转换,增加了可赋给枚举变量的合法值。每个枚举都有取值范围(range),通过强制类型转换,可以将取值范围内的任意整数值赋给枚举变量,即使这个值不是枚举值。
取值范围的定义:首先,要找出上限,需要知道枚举量的最大值,找到大于这个最大值的、最小的2的幂,将它减去1,得到的便是取值范围的上限;然后,要计算下限,需要知道枚举量的最小值,如果它不小于0,则取值范围的下限为0,否则,找到小于这个最小值的、最大的2的幂(带负号),将它加上1,得到的便是取值范围的下限。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值