C65-枚举类型

枚举类型

枚举类型的定义:

c 复制代码
enum 枚举名 
{
    常量1,
    常量2,
    ...,
    常量n
};

例如:

c 复制代码
enum Weekday 
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
};

枚举类型有以下特点:

  1. 枚举常量默认从 0 开始依次递增,如上面的Monday值为 0,Tuesday值为 1,依此类推。

    • Codes:

      c 复制代码
      #include <stdio.h>
      
          //定义枚举类型
      enum Weekday
      {
          Monday,
          Tuesday,
          Wednesday,
          Thursday,
          Friday,
          Saturday,
          Sunday
      };
      
      int main()
      {
          //声明枚举变量
          enum Weekday today;
          today=Monday;    //合法赋值
          
          //测试:枚举常量"默认值"
          printf("Monday=%d\n",today);
          today=Sunday;
          printf("Sunday=%d\n",today);
      
          return 0;
      }
    • Show:

  2. 可以显式指定枚举常量的值,例如:

    c 复制代码
    enum Color 
    {
        RED = 1,
        GREEN = 3,
        BLUE = 5
    };
    • Codes:

      c 复制代码
      #include <stdio.h>
      
          //定义枚举类型
      enum Weekday_1
      {
          Monday=3,
          Tuesday,
          Wednesday,
          Thursday,
          Friday,
          Saturday,
          Sunday
      };
      
      int main()
      {
          //测试:显示指定枚举常量的值
          enum Weekday_1 today1;
          today1=Monday;
          printf("Monday=%d\n",today1);
          today1=Sunday;
          printf("Sunday=%d\n",today1);
          return 0;
      }
    • Show:

  3. 未显式指定值的枚举常量,其值为前一个常量的值加 1。

使用枚举类型可以声明变量:

c 复制代码
enum Weekday today;
today = Wednesday;  // 合法赋值

​ 4.枚举类型可以用于比较

  • Codes:

    c 复制代码
    #include <stdio.h>
    
        //定义枚举类型
    enum Weekday
    {
        Monday,
        Tuesday,
        Wednesday,
        Thursday,
        Friday,
        Saturday,
        Sunday
    };
    
    int main()
    {
        //声明枚举变量
        enum Weekday today1;
        enum Weekday today2;
        today1=Monday;
        today2=Tuesday;
        if(today1<today2)
        {
            printf("The test was successful.");
        }
    
        return 0;
    }
  • Show :

相关推荐
kyriewen1113 分钟前
给浏览器画个圈:CSS contain 如何让页面从“卡成PPT”变“丝滑如德芙”
开发语言·前端·javascript·css·chrome·typescript·ecmascript
娇娇yyyyyy1 小时前
QT编程(18): Qt QItemSelectionModel介绍
开发语言·qt
豆豆的java之旅1 小时前
软考中级软件设计师 数据结构详细知识点(含真题+练习题,可直接复习)
java·开发语言·数据结构
sthnyph1 小时前
QT开发:事件循环与处理机制的概念和流程概括性总结
开发语言·qt
hanlin031 小时前
刷题笔记:力扣第43、67题(字符串计算)
笔记·算法·leetcode
大尚来也2 小时前
Java 反射:从“动态魔法”到生产实战的避坑指南
开发语言
无心水2 小时前
Java时间处理封神篇:java.time全解析
java·开发语言·python·架构·localdate·java.time·java时间处理
多看书少吃饭2 小时前
Vue + Java + Python 打造企业级 AI 知识库与任务分发系统(RAG架构全解析)
java·vue.js·笔记
了一梨2 小时前
[T113] 交叉编译 OpenCV 4.5.2 + face 模块
linux·笔记·opencv
m0_587958952 小时前
C++中的命令模式变体
开发语言·c++·算法