ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# C++ 中的枚举 > 原文: [https://beginnersbook.com/2017/09/cpp-enumeration/](https://beginnersbook.com/2017/09/cpp-enumeration/) 枚举是用户定义的数据类型,我们为变量指定一组值,变量只能从一小组可能的值中取出一个。我们使用`enum`关键字来定义枚举。 ```cpp enum direction {East, West, North, South}dir; ``` 这里枚举名称是只能取四个方向之一的指定值,声明末尾的`dir`是枚举变量。 让我们举一个简单的例子来理解这一点: 这里我已经将值`West`分配给枚举变量`dir`,当我显示`dir`的值时,它显示 1。这是因为默认情况下值从 0 开始递增,意思是东是 0,西是 1,北是 2,南是 3。 ## 简单的枚举示例 ```cpp #include<iostream> using namespace std; enum direction {East, West, North, South}dir; int main() { dir = West; cout<<dir; return 0; } ``` ## 另一种声明枚举变量的方法 正如我们在上面的例子中看到的,我在枚举声明中声明了枚举变量`dir`,还有另一种声明枚举变量的方法。 ```cpp #include <iostream> using namespace std; enum direction {East, West, North, South}; int main(){ direction dir;    dir = South;    cout<<dir;    return 0; } ``` 输出: ```cpp 3 ``` ## 为什么在 C++ 中使用`enum` 既然我们已经理解了什么是枚举以及如何在程序中使用它们,那么让我们讨论一下我们使用它们的原因: 只有在我们期望变量具有一组可能的值时才使用枚举,例如,我们有一个保存方向的`dir`变量。由于我们有四个方向,这个变量可以取四个值中的任何一个,如果我们尝试为这个变量赋另一个随机值,它将抛出一个编译错误。这会增加编译时检查并避免通过传入无效常量而发生的错误。 经常使用它们的另一个重要位置是[`switch-case`语句](https://beginnersbook.com/2017/08/cpp-switch-case/),其中`case`块期望的所有值都可以在枚举中定义。这样我们就可以确保我们在`switch`括号中传递的`enum`变量没有采用它不应该接受的任何随机值。 ## 如何更改`enum`的默认值 ```cpp #include <iostream> using namespace std; enum direction {East=11, West=22, North=33, South=44}; int main(){ direction dir;   dir = South;    cout<<dir;    return 0; } ``` **输出:** ```cpp 44 ```