枚举
程序中出现数字要尽量用符号来表示而非直接把数字出现在程序中(好处:可读性)
这时会使用到int、const等定义变量的关键字
枚举的出现:定义一些排比的符号量 比int、const更加方便
定义格式
enum 枚举名 {元素1,元素2…};
C语言内部enum数据类型一般为int
基本枚举使用
#include <stdio.h>
enum COLOR {
RED, YELLOW, GREEN}; //声明一种为color的数据类型
int main(int argc, char const *argv[])
{
int color = -1;
char *colorName = NULL;
printf("输入喜欢颜色代码");
scanf("%d", &color);
switch (color) {
case RED:
colorName = "red";
break;
case YELLOW:
colorName = "yellow";
break;
case GREEN:
colorName = "green";
break;
default:
colorName = "unknown";
break;
}
printf("喜欢的颜色:%s", colorName);
return 0;
}
枚举类型可以作为值
枚举类型可以跟上enum作为类型
#include <stdio.h>
enum color {
red, yellow, green};
void f(enum color c);
int main(void)
{
enum color t = red;
scanf("%d", &t);
f(t);
return 0;
}
void f(enum color c)
{
printf("%d\n",c);
}
自动计数的枚举
好处:用枚举类型中最后一个量来定义数组或或实现循环
#include <stdio.h>
enum COLOR {
RED, YELLOW, GREEN, NumCOLORS};
int main(int argc, char const *argv[])
{
int color = -1;
char *ColorNames