1.0 什么是枚举?
枚举顾名思义就是------列举。
把可能的取值-------列举。
比如我们现实生活中:
一周的星期一到星期日是有限的7天,可以一一列举。
性别:男,女,保密,等等。
颜色:红,黄,蓝,绿,等等。
这里就可以使用枚举了。
1.1 枚举类型的定义
enum people
{
man,
woman
};
enum color
{
red,
yellow,
blue,
black
};
以上定义的enum people,enum color,都是枚举类型。
{}中的内容是枚举类型的可能取值,也叫枚举常量。
这些可能取值都是有值的,默认从0开始m,依次递增,当然在需要的时候还可以定义赋值。
enum color
{
red=2;
yellow=8
};
1.2 枚举的优点
为什么要使用枚举?
我们可以使用#define定义常量,为什么非要使用枚举?
枚举的优点?
- 增加代码的可读性和可维护性。
- 和#define定义的标识符比较枚举有类型检查,更加严谨。
- 防止了命名污染(封装)。
- 便于调试(#define编译的时候直接替换为它的值,无法观察它的变化)。
- 使用方便,一次可以定义多个常量。
void Add_seekbook()
{
}
void Del_seekbook()
{
}
enum point
{
EXIT, //0
ADD, //1
DEL //2
};
int main()
{
printf("*********** 1.ADD 2.DEL 0.EXIT *********");
int input = 0;
scanf("%d",&input);
switch (input)
{
case EXIT: //使用枚举常量表示选择对象,增强代码维护性
printf("退出\n");
break;
case ADD:
Add_seekbook();
break;
case DEL:
Del_seekbook();
break;
}
return 0;
}
1.3枚举的使用
enum point
{
a=1,
b=4,
c=5
};
enum point clr=a; //只能拿枚举常量给枚举变量赋值,才不会导致类型的差异
clr=10; //ok?在C语言跑的过去,但是在c++中跑不过去,10是int类型,clr是枚举类型