C 枚举
C 枚举
C 语言中的枚举是一种特殊类型,它代表了一组常量(不可改变的值)。
要创建枚举,请使用 enum
关键字,后跟枚举名称,并用逗号分隔枚举项:
enum Level { LOW, MEDIUM, HIGH };
请注意,最后一项不需要逗号。
虽然并不要求使用大写字母,但通常认为这是一个好的做法。
Enum 是 "enumerations" 的缩写,意思是“具体列出的”。
要访问枚举,您必须创建一个该枚举类型的变量。
在 main()
方法中,指定 enum
关键字,后跟枚举的名称(Level
),然后是枚举变量的名称(本例中为 myVar
):
enum Level myVar;
现在,您已经创建了一个枚举变量(myVar
),可以为其分配一个值。
分配的值必须是枚举内部的一项(LOW
、MEDIUM
或 HIGH
):
enum Level myVar = MEDIUM;
默认情况下,第一项 (LOW
) 的值为 0,第二项 (MEDIUM
) 的值为 1,依此类推。
如果您现在尝试打印 myVar
,它将输出 1,代表 MEDIUM:
int main() { // 创建一个枚举变量并为其赋值 enum Level myVar = MEDIUM; // 打印枚举变量 printf("%d", myVar); return 0; }
更改值
如您所知,枚举的第一项的值为 0。第二项的值为 1,依此类推。
为了使这些值更有意义,您可以轻松更改它们:
enum Level { LOW = 25, MEDIUM = 50, HIGH = 75 };
printf("%d", myVar); // 这次输出 50
请注意,如果您为某一特定项分配了一个值,则后续项会相应地更新其数字:
enum Level { LOW = 5, MEDIUM, // 现在为 6 HIGH // 现在为 7 };
枚举在 switch 语句中的使用
枚举经常用在 switch 语句中来检查对应的值:
enum Level { LOW = 1, MEDIUM, HIGH }; int main() { enum Level myVar = MEDIUM; switch (myVar) { case 1: printf("Low Level"); break; case 2: printf("Medium level"); break; case 3: printf("High level"); break; } return 0; }
为何以及何时使用枚举?
枚举用于为常量命名,这使得代码更易于阅读和维护。
当您有一些您知道不会更改的值时,比如月份的天数、星期几、颜色、一副牌等,就应该使用枚举。