一、前言
枚举是C语言中的一种基本数据类型,用于定义一组具有离散值的常量,它可以让数据更简洁、更易读。通常用于为程序中的一组相关的常量取名字,以便程序的可读性和维护性。定义一个枚举需要使用enum关键字,后面跟着枚举类型的名称,以及用大括号括起来的一组枚举常量,每个枚举常量可以用一个标识符来表示,也可以为它们指定一个整数值,如果没有指定,那么默认从0开始递增。
格式:
enum 枚举名称{枚举值1,枚举值2,...}
二、基本使用
1.先定义枚举类型,再定义枚举变量
#include <stdio.h>
enum Week {
MON,TUE,WED,THU,FRI,SAT,SUN
};
int main()
{
enum Week week = TUE;
return 0;
}
2.定义枚举类型的同时定义枚举变量
#include <stdio.h>
enum Week {
MON,TUE,WED,THU,FRI,SAT,SUN
}day;
int main()
{
day = THU;
printf("%d\n", day);
return 0;
}
输出:
3.省略枚举名称,直接定义枚举变量
#include <stdio.h>
enum {
MON,TUE=2,WED,THU,FRI,SAT,SUN
}day;
int main()
{
day = TUE;
printf("%d\n", day);
return 0;
}
输出:
三、具体使用
枚举可以在switch中使用。
#include <stdio.h>
enum Week {
MON=1,TUE,WED,THU,FRI,SAT,SUN
};
int main()
{
enum Week day;
printf("请输入你喜欢的星期数:");
scanf("%d", &day);
switch (day)
{
case MON:
printf("喜欢星期一\n");
break;
case TUE:
printf("喜欢星期二\n");
break;
case WED:
printf("喜欢星期三\n");
break;
case THU:
printf("喜欢星期四\n");
break;
case FRI:
printf("喜欢星期五\n");
break;
case SAT:
printf("喜欢星期六\n");
break;
case SUN:
printf("喜欢星期天\n");
break;
default:
printf("输入错误\n");
break;
}
return 0;
}
输出:
将整数转换为枚举:
#include <stdio.h>
enum Week {
MON=1,TUE,WED,THU,FRI,SAT,SUN
};
int main()
{
enum Week day;
int a = 2;
day = (enum Week)a;
printf("day=%d\n", day);
return 0;
}
输出: