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 :

相关推荐
cfm_291410 分钟前
SpringAI + Ollama 本地大模型
java·开发语言·人工智能·语言模型
青山是哪个青山12 分钟前
LangChain 学习笔记(三):LangSmith 调试与监控
笔记·学习·langchain
C++ 老炮儿的技术栈1 小时前
基于Qt实现轻量化本地音乐播放器
开发语言·c++·qt·c·播放器·音乐
qq_448011161 小时前
C语言中的柔性数组
c语言·开发语言·柔性数组
小白学大数据2 小时前
长周期爬虫的数据一致性:断点续爬 + 事务回滚保障采集质量
开发语言·爬虫·测试工具
蒸蒸yyyyzwd2 小时前
cpp选手备战后端学习笔记day6 秋招笔试题
笔记·学习
zlinear数据采集卡2 小时前
D223上位机C#开发实战:从帧解析到波形显示的完整实现
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
Poo_Chai2 小时前
QT emit信号后完整处理流程,包括槽函数响应流程
java·开发语言·数据库
瑞码空间2 小时前
Java 图形界面(GUI)完整知识点手册
java·开发语言·图形界面·swing
小努蛋3 小时前
linux编译openresty异常问题,lua_cjson.c:706:5: 错误: ‘for‘ 循环初始化声明只在 C99 或 C++ 模式下允许
开发语言·lua·openresty