枚举的定义
枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。
枚举语法定义格式为:
enum 枚举名 {枚举元素1,枚举元素2,……};
代码示例
//枚举的三种方法
//先定义枚举类型,再定义枚举变量
enum DAY
{
MON, TUE, WED, THU, FRI, SAT, SUN
};
enum DAY day1;
//定义枚举类型的同时定义枚举变量
enum DAY
{
MON, TUE, WED, THU, FRI, SAT, SUN
}day2;
//省略枚举名称,直接定义枚举变量
enum
{
MON, TUE, WED, THU, FRI, SAT, SUN
}day3;
注:
第一个枚举成员的默认值为整型的 0,后续枚举成员的值在前一个成员上加 1。当我们不想使用默认的值,我们也可以为其赋值
enum DAY
{
//这里表示的是星期,我们想让枚举的值从1开始
//我们让MON等于1,那么后续枚举成员的值在前一个成员上加 1
MON = 1, TUE, WED, THU, FRI, SAT, SUN
};
还有一种情况
enum DAY
{
//我们为WED的值等于8,那么枚举元素的值是多少呢
//首先第一个枚举成员的默认值为整型的 0,后续枚举成员的值在前一个成员上加 1,所以MON=0,TUE=2
//WED就是等于我们赋予的值8,后续枚举成员的值在前一个成员上加 1,WED=8, THU=9, FRI=10, SAT=11, SUN=12
MON, TUE, WED = 8, THU, FRI, SAT, SUN
};
枚举的优点
我们可以使用 #define 定义常量,为什么非要使用枚举?
#define MON 1
#define TUE 2
#define WED 3
#define THU 4
#define FRI 5
#define SAT 6
#define SUN 7
enum DAY
{
MON = 1, TUE, WED, THU, FRI, SAT, SUN
};
枚举的优点:
增加代码的可读性和可维护性
和#define定义的标识符比较枚举有类型检查,更加严谨。
防止了命名污染(封装)
便于调试
使用方便,一次可以定义多个常量
枚举的使用
enum DAY
{
MON = 1, TUE, WED, THU, FRI, SAT, SUN
};
int main()
{
enum DAY day;
day = WED;
printf("%d\n", day);
/* 用户输入数字来选择星期 */
printf("请输入你喜欢的星期: (1-7): ");
scanf("%u", &day);
/* 输出结果 */
switch (day)
{
case MON:
printf("你喜欢星期一");
break;
case TUE:
printf("你喜欢星期二");
break;
case WED:
printf("你喜欢星期三");
break;
case THU:
printf("你喜欢星期四");
break;
case FRI:
printf("你喜欢星期五");
break;
case SAT:
printf("你喜欢星期六");
break;
case SUN:
printf("你喜欢星期日");
break;
default:
printf("输入错误");
}
return 0;
}
本文出现任何错误,欢迎留言批评指正。