前言 枚举在我们平时练习或学习的时候可能不是很常用,但是其在工程项目里,还是比较常见的,因为他能起到优化用。并且,有时我们在写题的时候,也会运用到枚举的思想。 枚举
前言
枚举在我们平时练习或学习的时候可能不是很常用,但是其在工程项目里,还是比较常见的,因为他能起到优化用。并且,有时我们在写题的时候,也会运用到枚举的思想。
枚举的介绍
枚举顾名思义就是 一 一 列举。把可能的取值 一 一 列举。
比如我们现实生活中: 1.一个星期从星期一到星期天的有限的7天可以 一 一 列举。 2.月份从1月到12月也可以 一 一 列举出来。 3.颜色分红黄蓝绿蓝靛紫几种颜色,也可以 一 一 列举出来。
枚举类型的定义
直接上代码(注意观察语法形式):
// enum var_name 这个就是枚举类型
enum Sex // 枚举性别
{
MAN, // 男人
WOMAN // 女人
// 当然也有可能是人妖
};
enum Day // 枚举星期
{
Mon, // 注意这里是逗号
Tues,
Wed,
Thur,
Fri,
Sat,
Sun // 最后一个后面什么符号也不用打
}; // 这里必须要有分号
enum Color
{
RED,
GREEN,
BLUE
};
当然,既然是类型,那么也可以使用typedef
起别名:
typedef enum Color
{
RED,
GREEN,
BLUE
}Clr; // 将 enum Color 类型名 简化成 Clr
1.以上定义的enum Day
,enum Sex
,enum Color
都是枚举类型。
2.{}
中的内容是枚举类型的可能取值,也叫枚举常量。
3.这些可能取值都是有值的,默认从0
开始,依次递增1
,例如:上面的RED
可以看作0
,GREEN
可以看作1
,BLUE
可以看作2
。
4.当然在定义的时候也可以赋初值。例如:
enum Color//颜色
{
RED = 1,
GREEN = 2,
BLUE = 4
};
而如果是这样赋值:
enum Day // 枚举星期
{
Mon,
Tues,
Wed,
Thur = 10,
Fri,
Sat,
Sun
};
- 那也就意味着从
Mon
到Wed
是由0
开始依次递增(Mon = 0, Tuse = 1, Wed = 2
),从Thur
到Sun
是由10
开始依次递增(Thur = 10, Fri = 11, Sat = 12, Sun = 13
)。
枚举的优点
- 为什么使用枚举?
- 我们可以使用 #define 定义常量,为什么非要使用枚举?
原因:
- 增加代码的可读性和可维护性。
- 和#define定义的标识符比较枚举有类型检查,更加严谨。
- 防止了命名污染(封装)。
- 便于调试。
- 使用方便,一次可以定义多个常量。
- 我们可以去看很多项目的源码,会发现,里面很多用枚举来定义常量。
枚举的使用
enum Color//颜色
{
RED = 1,
GREEN = 2,
BLUE = 4
};
// 只能拿枚举常量给枚举变量赋值,才不会出现类型的差异。
enum Color clr = GREEN;
clr = 5;
写在最后
虽然在现在阶段我们很难体会到枚举的好处,但是我们可以多去看看别人的代码,多去领悟一下枚举到底有什么用?这样我们使用起来也才会得心应手。
感谢阅读本小白的博客,错误的地方请严厉指出噢!