枚举他是一种类型,他是你自己创造的一种根据自己需求创建的一个被命名的整型常数的集合
枚举顾名思义就是一一列举。
把可能的取值一一列举。
比如我们现实生活中:
一周的星期一到星期日是有限的 7 天,可以一一列举。性别有:男、女、保密,也可以一一列举。月份有 12 个月,也可以一一列举。
这里就可以使用枚举了
一. 枚举类型的定义
枚举类型的定义与结构体类似,不同在于结构体每个成员之间是用";"隔开的,而枚举成员之间却是用“,”分隔,如下:
enum Day//星期
{
Mon,
Tues,
Wed,
Thur,
Fri,
Sat,
Sun
};
enum Sex//性别
{
MALE,
FEMALE,
SECRET
};
enum Color//颜色
{
RED,
GREEN,
BLUE
};
以上定义的
enum Day
,
enum Sex
,
enum Color
都是枚举类型。{}中的内容是枚举类型的可能取值,也叫
枚举常量
。
这些可能取值都是有值的,在未初始化的情况下,
默认从0
开始,一次递增
1,当然在定义的时候也可以赋初值。而那些未初始化的部分会从最后一个初始化数开始向后依次递增1。如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/a00a5dbaa9a3355a3740e6cacd31f774.png)
![](https://i-blog.csdnimg.cn/blog_migrate/50eeafeffdbdb4c71b3fd25efc0d1d32.png)
二.枚举的使用
enum Color//颜色
{
RED = 1,
GREEN = 2,
BLUE = 4
};
enum Color clr = GREEN;
clr = 5;
要注意的是只能拿枚举常量给枚举变量赋值,才不会出现类型的差异。
三.枚举的优点、
为什么使用枚举?
我们可以使用
#define
定义常量,为什么非要使用枚举?
枚举的优点:
1.
增加代码的可读性和可维护性
2.
和
#define
定义的标识符比较枚举有类型检查,更加严谨。
3.
防止了命名污染(封装)
4.
便于调试
5.
使用方便,一次可以定义多个常量