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 :

相关推荐
GilgameshJSS5 小时前
STM32H743-ARM例程33-TOUCH
c语言·arm开发·stm32·单片机·嵌入式硬件
纵有疾風起8 小时前
C++—string(1):string类的学习与使用
开发语言·c++·经验分享·学习·开源·1024程序员节
Molesidy8 小时前
【随笔】【QT】QT5.15.2版本的最新下载方式!!!
开发语言·qt
luoqice8 小时前
如何编译QT可执行release程序
c语言
二进制person9 小时前
Java EE初阶 --多线程2
java·开发语言
yue0089 小时前
C#理论学习-WinForm实践开发教程总结
开发语言·学习·c#
007php00710 小时前
某游戏大厂 Java 面试题深度解析(四)
java·开发语言·python·面试·职场和发展·golang·php
Mr.Jessy10 小时前
Web APIs学习第一天:获取 DOM 对象
开发语言·前端·javascript·学习·html
午安~婉10 小时前
javaScript八股问题
开发语言·javascript·原型模式
想不明白的过度思考者10 小时前
Rust——异步递归深度指南:从问题到解决方案
开发语言·后端·rust