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 :

相关推荐
至为芯20 小时前
IP5385至为芯支持C口双向快充的30W到100W移动电源方案芯片
c语言·开发语言
月明长歌20 小时前
Javasynchronized 原理拆解:锁升级链路 + JVM 优化 + CAS 与 ABA 问题(完整整合版)
java·开发语言·jvm·安全·设计模式
独自破碎E20 小时前
说说Java中的常量池
java·开发语言
郝学胜-神的一滴20 小时前
Qt OpenGL 生成Mipmap技术详解
开发语言·c++·qt·系统架构·游戏引擎·图形渲染·unreal engine
程序员三明治20 小时前
【Java基础】深入 String:为什么它是不可变的?从底层原理到架构设计
java·开发语言·java基础·string·不可变
这里是彪彪20 小时前
Java模拟实现定时器
java·开发语言·python
沐知全栈开发20 小时前
jEasyUI 树形菜单添加节点
开发语言
春风有信20 小时前
【学术写作】LaTeX基础:从概念理解到基础应用
经验分享·笔记·学习
观无20 小时前
雷塞运动控制(DMC3800)C#基础应用案例分享
开发语言·c#
w-w0w-w20 小时前
C++中vector的操作和简单实现
开发语言·数据结构·c++