菜单
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C 枚举 (enum)


C 枚举

enum 是一种特殊的类型,它表示一组常量(不可更改的值)。

要创建枚举,请使用 enum 关键字,后跟枚举的名称,并用逗号分隔枚举项

enum Level {
  LOW,
  MEDIUM,
  HIGH
};

注意,最后一项不需要逗号。

不强制使用大写,但通常被认为是良好的实践。

Enum 是 "enumerations"(枚举)的缩写,意思是 "明确列出"。

要访问枚举,您必须创建它的一个变量。

main() 方法中,指定 enum 关键字,后跟枚举的名称(在此示例中为 Level),然后是枚举变量的名称(myVar

enum Level myVar;

现在您已经创建了一个枚举变量(myVar),您可以为其赋值。

赋给它的值必须是枚举中的一个项(LOWMEDIUMHIGH

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;
}
自己动手试一试 »

为什么以及何时使用枚举?

枚举用于为常量命名,这使得代码更易于阅读和维护。

当您拥有一组您知道不会改变的值时,请使用枚举,例如月份、星期几、颜色、一副牌等等。


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持