啃书《C++ Primer Plus》之 枚举

本文详细介绍了C++中的枚举类型和枚举类,包括创建枚举、枚举类型的取值范围和类型转换、枚举类的使用及其优势,同时探讨了枚举的局限性,如名称冲突和类型转化问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

啃书系列持续更新ing,点赞和关注是对萌新博主莫大的鼓励。

系列文章:
啃书《C++ Primer Plus》之 C++ 函数指针
啃书《C++ Primer Plus》之 C++ 名称空间1
啃书《C++ Primer Plus》之 C++ 名称空间2
啃书《C++ Primer Plus》之 C++ 引用
啃书《C++ Primer Plus》之 const修饰符修饰 类对象 指针 变量 函数 引用


枚举是C++语言基础知识点,提供了一种创建符号常量的方式,这种方式定义符号常量更集中,也更清晰明了,但也有它的弊端。下面就来梳理一下有关枚举的一些概念。包括两种常见的枚举创建形式以及有关枚举局限的一些讨论,内容导图如下:
在这里插入图片描述


枚举类型

在介绍写法和用法之前,我们需要先来认识一下枚举需要的关键字: enum
这个长得很像 emm (博主在学习它之前一直把它当做emm来看待) 的关键字的全拼是 enumeration ,它的意思就是枚举。代表着列举某些常用量的意思,这和它批量定义常量的作用是很搭的。

在知道了枚举的关键字之后,下面我们来说说它的经典用法:枚举类型

创建枚举类型

要想使用枚举类型,必须先创建它 (这好像是句废话) 。创建它的语法规则如下:

enum 枚举类型名{常量名1,常量名2...};

当然,这里的类型名是可以省略的,那样,我们就仅仅使用枚举的规则创建了几个常量。

写成代码,举个粟子:

enum numbers{
   
   ZERO,ONE,TEN};
enum {
   
   SPRING,SUMMER};

那么,我们不禁要问:使用枚举定义常量,它的值如何定义呢?
需要介绍的是,枚举在创建时会默认隐式的为每一个常量赋值,它遵循下面两条规律:

  • 第一个常量默认为0
  • 非首个常量的值为前一个常量的值+1

所以,根据这两条规律,我们可以知道,当没有显式的赋值时,常量的值将会被默认的定为:0,1,2…

另外,除了隐式的赋予默认值,枚举还允许我们进行显式的赋值(不然定义常量可太麻烦了),即在定义枚举时使用 “=” 给常量赋值。这也是为什么上面的两条规律被拆开描述而不合在一起。

总结下上面说过的赋值规则,看下面的例子:

enum numbers{
   
   ZERO,TWO = 2,TEN};
/*
	ZERO = 0
	TWO = 2
	TEN = 3
*/
enum numbers{
   
   ONE = 1,TWO = 2,TEN = 10}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值