C enum(枚举)学习笔记

什么是枚举?

在C语言中,枚举是一种用户自定义的数据类型,用于将一组具有相关性质的整型常量放在一起,形成一个新的数据类型。这些整型常量称为枚举成员,每个枚举成员都有一个唯一的整型值。

枚举的定义

枚举是使用关键字enum定义的,通常在函数外部定义,其语法如下:

cCopy Code
enum 枚举名 { 枚举成员1, 枚举成员2, ... 枚举成员n };

其中,枚举成员可以有初始值,也可以没有初始值。如果没有初始值,则第一个枚举成员的值默认为0,后面的每个枚举成员的值比前一个枚举成员的值大1。

例如,以下实例定义了一个枚举类型week,其中的枚举成员分别表示每个星期几:

cCopy Code
enum week { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY };

上述代码中的每个枚举成员都有一个整型常量值,分别为0到6。

枚举的使用

在程序中,我们可以通过枚举名和枚举成员来声明变量,例如:

cCopy Code
enum week today; // 声明一个枚举变量today today = TUESDAY; // 为枚举变量today 赋值

也可以在定义枚举类型的同时,声明枚举变量,例如:

cCopy Code
enum week { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } today; // 定义枚举变量today

枚举变量可以直接使用枚举常量赋值,例如:

cCopy Code
today = 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 Code
Today is 2 day of the week.

上述程序中,我们使用枚举类型week定义了枚举常量MONDAY到SUNDAY,并且声明了一个枚举变量today并初始化为TUESDAY,最后输出枚举变量today+1的值。

总结

枚举类型提供了一种方便的方法来定义一组有序的整数常量,可以提高程序的可读性,降低了出错的几率。在实际应用中,枚举类型有着广泛的应用。