目录
一、什么是枚举类型
枚举类型是C语言中的一种基本数据类型,他存在就是为了让数据更易读,更简洁。
通常的语法格式为:
enum 枚举名 {枚举元素1,枚举元素2,……};
如果在程序中需要定义一周七天,如果不使用枚举类型的话,需要使用#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
};
这样一对比的话,运用枚举类型就更加优雅和简洁。(优雅永不过时hh)
ps:第一个枚举成员的默认值为整型的 0,后续枚举成员的值在前一个成员上加 1。在这个实例中把第一个枚举成员的值定义为 1,第二个就为 2,以此类推。
二、枚举变量的定义
上面只是声明了枚举类型,那么枚举变量要怎么来定义呢?
可以通过三种方法来定义枚举变量:
1、先定义枚举类型,再定义枚举变量
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
enum DAY day;
2、定义枚举类型的同时定义枚举变量
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
} day;
3、省略枚举名称,直接定义枚举变量
enum
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
} day;
#include <stdio.h>
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
int main()
{
enum DAY day;
day = WED;
printf("%d",day);
return 0;
}
运行上面的代码输出的结果为:
3
三、将整数转换为枚举
下面的程序将整数转换为枚举:
#include <stdio.h>
#include <stdlib.h>
int main()
{
enum day
{
saturday,
sunday,
monday,
tuesday,
wednesday,
thursday,
friday
} workday;
int a = 1;
enum day weekend;
weekend = ( enum day ) a; //类型转换
//weekend = a; //错误
printf("weekend:%d",weekend);
return 0;
}
运行上面的代码输出的结果为:
weekend:1