目录
简介
枚举enum是英文enumerate的缩写,列举、排列说明的意思。枚举是 C 语言中的一种基本数据类型,用于定义一组具有离散值的常量。枚举类型可以让我们的程序使用一些固定长度和固定数值的变量值范围。枚举类型通常用于为程序中的一组相关的常量取名字,以便于程序的可读性和维护性。定义一个枚举类型,需要使用 enum 关键字,后面跟着枚举类型的名称,以及用大括号 {} 括起来的一组枚举常量。每个枚举常量可以用一个标识符来表示,也可以为它们指定一个整数值,如果没有指定,那么默认从 0 开始递增。
枚举定义
枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。比如:一星期有 7 天,如果不用枚举,我们需要使用 #define 来为每个整数定义一个别名
枚举变量的定义
案例:
#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;
}
#include <stdio.h>
enum DAY{MON=1, TUE, WED, THU, FRI, SAT, SUN} day;
int main()
{
day = WED;
printf("%d",day);
return 0;
}
#include <stdio.h>
enum {MON=1, TUE, WED, THU, FRI, SAT, SUN} day;
int main()
{
day = WED;
printf("%d",day);
return 0;
}
//以上三个函数输出结果都是3,WED的下标是3
枚举的应用
#include <stdio.h>
int main(){
enum color { red=1, green, blue } color;
printf("请输入你喜欢的颜色: (1. red, 2. green, 3. blue): ");
scanf("%u", &color);
switch (color){
case red:
printf("你喜欢的颜色是红色");
break;
case green:
printf("你喜欢的颜色是绿色");
break;
case blue:
printf("你喜欢的颜色是蓝色");
break;
default:
printf("你没有选择你喜欢的颜色");
}
return 0;
}
结果:
//请输入你喜欢的颜色: (1. red, 2. green, 3. blue): 1
//你喜欢的颜色是红色
将整数转换为枚举
#include <stdio.h>
int main(){
enum day{saturday,sunday,monday,tuesday,wednesday,
thursday,friday} workday;
//枚举变量定义,枚举名可以省略,变量定义简化
int a = 1;
workday = ( enum day ) a; //类型转换
printf("sunday:%d",workday);
return 0;
}
结果:
//sunday:1