【C++知识点】枚举类型

简介: 【C++知识点】枚举类型

枚举类型

枚举类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。

//语法
enum <类型名> {<枚举常量表>};
  1. 1.关键字enum:指明其后的标识符是一个枚举类型的名字。
  2. 2.枚举常量表:由枚举常量构成。

“枚举常量"或称"枚举成员”,是以标识符形式表示的整型量,表示枚举类型的取值。枚举常量表列出枚举类型的所有取值,各枚举常量之间以==","间隔==,且必须各不相同。取值类型与条件表达式相同。

//枚举类型的定义
enum color {RED, BLUE, WHITE, BLACK}; //定义枚举类型color
enum week {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; //定义枚举类型week

枚举常量代表该枚举类型的变量可能取的值,编译系统为每个枚举常量指定一个整数值。

默认状态下,这个整数就是所列举元素的序号,序号从0开始。

可以在定义枚举类型时为部分或全部枚举常量指定整数值,在指定值之前的枚举常量仍按默认方式取值,而指定值之后的枚举常量按依次加1的原则取值。

各枚举常量的值可以重复。

enum fruit { apple, orange, banana = 1, peach, grape }
//枚举常量apple=0,orange=1, banana=1,peach=2,grape=3。
enum week { Sun = 7, Mon = 1, Tue, Wed, Thu, Fri, Sat };
//枚举常量Sun,Mon,Tue,Wed,Thu,Fri,Sat的值分别为7、1、2、3、4、5、6

枚举常量只能以标识符形式表示,而不能是整型、字符型等文字常量。

enum letter {'a','b','c'}; //枚举常量不能是字符常量
enum year{2022,2023,2024,2025}; //枚举常量不能是整型常量
enum letter {a,b,c};
enum year{y2022,y2023,y2024,y2025};

使用枚举变量

定义枚举类型之后,就可以定义该枚举类型的变量。

//语法
enumName enumVarName;//枚举名 枚举变量名;         
enum week {Sun, Mon, Tue, Wed, Thu, Fri, Sat};
week w1,w2;
//类型与变量同时定义,类型名可省略
enum {Sun, Mon, Tue, Wed, Thu, Fri, Sat} w1,w2;

枚举变量的值只能取枚举常量表中所列的值,就是整型数的一个子集。

枚举变量占用内存的大小与整型数相同。

枚举变量只能参与赋值和关系运算以及输出操作,参与运算时用其本身的整数值

enum week {Sun, Mon, Tue, Wed, Thu, Fri, Sat};
week weekday1,weekday2;
weekday1 = Sun; //正确
//weekday1 = San;//错误 只能取枚举常量表中所列的值,就是整型数的一个子集。
enum week { Sun, Mon, Tue, Wed, Thu, Fri, Sat };
week weekday1, weekday2;
weekday1 = Sun;
weekday2 = Mon;
if (weekday1 < weekday2) { 
    //只能参与赋值和关系运算
    cout << “day1 < day2”;
}
cout << weekday2 << endl;//输出操作
cout << weekday1 + weekday2 << endl;
int num = weekday1;

枚举变量可以直接输出,但不能直接输入。

不能直接将常量赋给枚举变量。

不同类型的枚举变量之间不能相互赋值。

枚举变量的输入输出一般都采用switch语句将其转换为字符或字符串。

目录
相关文章
|
6月前
|
存储 人工智能 算法
【一站式备考指南】一文掌握 C++ 程序设计 课程 知识点
【一站式备考指南】一文掌握 C++ 程序设计 课程 知识点
128 0
|
6月前
|
存储 编译器 Shell
【C++基础语法 枚举】解析 C/C++ 中枚举类型大小值
【C++基础语法 枚举】解析 C/C++ 中枚举类型大小值
80 0
|
5月前
|
存储 网络协议 编译器
【干货总结】Linux C/C++面试知识点
Linux C/C++基础与进阶知识点,不仅用于面试,平时开发也用得上!
592 14
|
5月前
|
存储 安全 API
C++一分钟之-C++中的枚举类型(enum class)
【6月更文挑战第25天】C++的`enum class`(强类型枚举)在C++11中引入,增强了枚举的作用域和类型安全,减少命名冲突。它要求使用全名(如`Color::Green`)访问枚举成员,并能显式指定底层类型。常见问题包括默认值非0、隐式转换和范围溢出,解决办法是明确赋值、显式转换和选择合适底层类型。高效技巧包括用于状态机、作为函数参数、创建别名和迭代。掌握这些能提升代码质量。
175 0
|
6月前
|
安全 C++
C++程序中的枚举类型
C++程序中的枚举类型
58 1
|
5月前
|
C++
C++继承的相关知识点
C++继承的相关知识点
30 0
|
6月前
|
C++
【C++小小知识点】重载、覆盖(重写)、隐藏(重定义)的对比【详解】(23)
【C++小小知识点】重载、覆盖(重写)、隐藏(重定义)的对比【详解】(23)
|
6月前
|
存储 算法 搜索推荐
【C++ 数据结构与算法 一站式备考指南】一文掌握 数据结构与算法课程 知识点(二)
【C++ 数据结构与算法 一站式备考指南】一文掌握 数据结构与算法课程 知识点
156 2
|
6月前
|
存储 算法 C++
【C++ 数据结构与算法 一站式备考指南】一文掌握 数据结构与算法课程 知识点(一)
【C++ 数据结构与算法 一站式备考指南】一文掌握 数据结构与算法课程 知识点
255 2
|
6月前
|
编译器 Linux C++
C++ “美中不足” --->强枚举类型
C++ “美中不足” --->强枚举类型