枚举
枚举顾名思义就是一一列举。
把可能的取值一一例举。
比如:
一周的星期一到星期天是有限的七天,可以一一列举。
性别有:男,女,也可以一一列举。
月份有12个月,也可以一一列举。
这里就可以使用枚举了。
枚举类型的定义
enum Day //星期
{
Mon,
Tues,
Wed,
Thur,
Fri,
Sat,
Sum
};
//枚举类型
enum Sex
{
//枚举的可能取值--枚举常量
MALE =2, //赋初始值
FEMALE =4,
SECRET = 8
};
enum Color
{
RED; //0
YELLOW; //1
BLUE //2
};
int main()
{
enum Sex s = MALE;
enum Color c=BLUE;
enum Color c=2; //语法出现了错误,2为int类型
printf ("%d %d $d\n",RED,GREEN,BLUE); //结果为 0 1 2
printf ("%d %d $d\n",MALE,FEMALE,SECRET); //结果为 2 4 8
return 0;
}
枚举的优点:
1.增加代码的可读性和可维护性
2.和#define定义的标识符比较枚举有类型检查,更加严谨
3.防止了命名污染(封装)
4.便于调试
5.使用方便,一次可以定义多个常量
枚举的使用
enum Color
{
RED=1,
YELLOW=2,
BLUE=4
};
enum Color clr = GREEN; //只能拿枚举常量给枚举变量赋值,才不会出现类型的差异。
clr = 5; //ok?