C enum(枚举)学习笔记
什么是枚举?
在C语言中,枚举是一种用户自定义的数据类型,用于将一组具有相关性质的整型常量放在一起,形成一个新的数据类型。这些整型常量称为枚举成员,每个枚举成员都有一个唯一的整型值。
枚举的定义
枚举是使用关键字enum
定义的,通常在函数外部定义,其语法如下:
cCopy Codeenum 枚举名 {
枚举成员1,
枚举成员2,
...
枚举成员n
};
其中,枚举成员可以有初始值,也可以没有初始值。如果没有初始值,则第一个枚举成员的值默认为0,后面的每个枚举成员的值比前一个枚举成员的值大1。
例如,以下实例定义了一个枚举类型week,其中的枚举成员分别表示每个星期几:
cCopy Codeenum week {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
};
上述代码中的每个枚举成员都有一个整型常量值,分别为0到6。
枚举的使用
在程序中,我们可以通过枚举名和枚举成员来声明变量,例如:
cCopy Codeenum week today; // 声明一个枚举变量today
today = TUESDAY; // 为枚举变量today 赋值
也可以在定义枚举类型的同时,声明枚举变量,例如:
cCopy Codeenum week {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
} today; // 定义枚举变量today
枚举变量可以直接使用枚举常量赋值,例如:
cCopy Codetoday = TUESDAY;
实例
以下是一个简单的实例,演示了如何创建并使用枚举类型:
cCopy Code#include <stdio.h>
enum week {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
};
int main() {
enum week today = TUESDAY;
printf("Today is %d day of the week.\n", today+1);
return 0;
}
输出:
Copy CodeToday is 2 day of the week.
上述程序中,我们使用枚举类型week定义了枚举常量MONDAY到SUNDAY,并且声明了一个枚举变量today并初始化为TUESDAY,最后输出枚举变量today+1的值。
总结
枚举类型提供了一种方便的方法来定义一组有序的整数常量,可以提高程序的可读性,降低了出错的几率。在实际应用中,枚举类型有着广泛的应用。