C/C++中枚举类型enum使用

2023-05-16

1. 说明:

  枚举enum的出现,主要是为了解决一些特定属性的赋值,变量取值仅在一定有限范围内的问题。例如一年只有十二个月取值,一个星期只有七天情况,人的性别只有男女两种等。这些属性如果简简单单用int类型变量定义就有失妥当,能取的值远远超出可取值范围。所以我们希望给这些属性变量,定义一个有限取值范围。
  枚举即将变量的值一一列举出来,变量只限于列举出来的值的范围内取值。

2. 定义

  语法结构:
  enum [枚举名] {e1[=Value1], e2[=Value2] ,… …};

  e1、e2… …:称为枚举常量,枚举成员,也称为枚举子。
  Value1,Value2… …:称为枚举子值,即枚举值,可忽略不写,默认从0依次赋值。
  例如:

enum color {red,green,blue}; //枚举值分别为0,1,2.

  定义枚举类型变量:
  [enum] 枚举名 枚举变量名 [=初始化值];
  例如:

color paint = red;

enum color paint = red; 

  当然,也可以么直接定义枚举变量,像结构体struct一样:

enum color {red=1 , green =5, blue=10} paint;

3. 枚举语法

  ①.枚举成员不是变量,而是常数,和const定义常变量一样,所以不能对枚举元素进行赋值。
  ②.枚举成员作为常量,定义的时候存储的值按列举顺序依次默认为0,1,2……。当然,声明时候可以修改其存储值,即修改枚举值,但不可以为负数,如-1,-2等,且枚举值为整数。
  例如:

enum color {red, green=10,blue}; //依次为0,10,11

  这种情况下,red枚举值依旧默认为0,green则为10,而blue没有赋值,则随上个枚举值递增下去,所以为11。
  枚举值在未特定赋值外,后续枚举成员默认都是依上个成员的枚举值依次递增的。  
  ③. 枚举成员不是简单字符串常量,使用的时候无需添加单、双引号。
  ④.枚举成员不可以重复,但是枚举值可以重复。重复枚举值的枚举成员表明它们具有共同性质,所以放在一起。
  例如:

enum weeks {mon=1,tue=1,wed=1,thu=1,fri=1,sat=2,sun=2};

  一周周一到周五是工作日,我们希望它们具有共性和相同的枚举值。而周末休息,我们希望它两有另外一个枚举值。
  ⑤.一个整数不能直接赋给一个枚举变量,必须强制进行类型转换才能赋值。
  例如:

enum weeks day;
day =(weeks)2;

  ⑥.枚举值可以用在if-else或者switch-case判断中。
  例如:

if(day != mon)
{
    printf("今天是工作日\n");
}

  ⑦.编译平台输出枚举类型变量,输出的不是枚举常量名称,而是枚举值。就像const int n=1输出的并不是’n’这个字符,而是1这个值。
  例如:

enum weeks day = mon; //定义枚举weeks类型变量并初始化
day = (weeks)2;  
cout<<day<<endl;      //输出结果为2,并不是"sat"字符串常量      

4. 枚举应用程序

当输入今天星期几(1-7),我们希望判断今天是否上班(公司规定周一到周五工作,周末休息)。

#include<stdio.h> 

int main( ) 
{ 

    enum weekday {sun=1,mon,tue,wed,thu,fri,sat} day; //从1开始
    int k; 
    printf("请输入今天星期几(1--7):"); 
    scanf("%d",&k); 
    day=(enum weekday)k; 
    switch(day) 
    {        
        case mon:  
        case tue:
        case wed:  
        case thu:  
        case fri:       printf("今天上班\n"); break; 

        case sun:
        case sat:       printf("今天休息\n"); break; 

        default:        printf("输入有误\n"); break; 
    } 
    return 0;
}

个人学习记录,由于能力和时间有限,如果有错误望读者纠正,谢谢!

转载请注明出处:CSDN 无鞋童鞋。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C/C++中枚举类型enum使用 的相关文章

  • Enum枚举前后端传输展示方案

    1 定义枚举类型 public enum RolesTypeEnum implements Enumerator MANAGER 34 管理员 34 0 BUSINESS 34 招商员工 34 1 PROPERTY 34 物业员工 34 2
  • C++ enum 和enum class

    文章目录 C 43 43 enum 和 enum class共同点区别 C 43 43 enum 和 enum class 在C 43 43 中 xff0c enum 是一种定义枚举类型的方法 一个枚举是一个整数值的命名集合 可以通过以下方
  • Qt Q_ENUM使用 枚举字符串互转

    目录 1 简述2 Q ENUM用法2 1 声明使用2 2 测试例子 3 用模板实现一个字符串枚举互转3 1代码3 2 用法示例 1 简述 数据库里用到了枚举的存储 xff0c 比如一个设备有两个状态 xff0c 保持数据库和代码的可读性 x
  • enum 与string的转换

    从enum转换为string可以用ToString 方法 xff0c 如果从string转化为enum xff1a var domInt 61 Convert ToString row 34 DomInt 34 FlightDomInt d
  • c语言enum枚举字符串,c语言enum使用_enum枚举变量

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 二 enum枚举 1 枚举的定义 枚举类型定义的一般形式为 xff1a enum 枚举名 枚举值表 在枚举值表中应罗列出所有可用值 这些值也称为枚举元素 例如 xff1a 该枚举名为weekda
  • C#枚举(Enum)

    枚举是直接在命名空间 类或结构中使用 enum 关键字定义的 所有常量名都可以在大括号内声明 xff0c 并用逗号分隔 下面定义了工作日的枚举 示例 xff1a 定义一个枚举 enum WeekDays Monday Tuesday Wed
  • 枚举(enum)

    一 什么是枚举 我们学习过单例模式 xff0c 即一个类只有一个实例 而枚举其实就是多例 xff0c 一个类有多个实例 xff0c 但实例的个数不是无穷的 xff0c 是有限个数的 例如word文档的对齐方式有几种 xff1a 左对齐 居中
  • C 语言使用宏自定义可打印的枚举(enum) 类型

    1 前言 xff1a 说点废话 xff0c 时间紧的请直接跳过 xff0c 看后面的实现 尽管本人很反感 C 语言中的宏定义 xff0c 特别是滥用宏定义经常会让问题变的扑朔迷离 xff0c 但是不得不承认 xff0c 在某些时候 xff0
  • C/C++中枚举类型enum使用

    1 说明 xff1a 枚举enum的出现 xff0c 主要是为了解决一些特定属性的赋值 xff0c 变量取值仅在一定有限范围内的问题 例如一年只有十二个月取值 xff0c 一个星期只有七天情况 xff0c 人的性别只有男女两种等 这些属性如
  • C语言枚举类型(C语言enum用法)详解

    在实际编程中 xff0c 有些数据的取值往往是有限的 xff0c 只能是非常少量的整数 xff0c 并且最好为每个值都取一个名字 xff0c 以方便在后续代码中使用 xff0c 比如一个星期只有七天 xff0c 一年只有十二个月 xff0c
  • C++枚举解读(enum)

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 枚举是什么 xff1f 二 使用步骤1 作用域2 隐式类型转换3 显式指定枚举值类型4 指定枚举值的值4 整形显式转换成
  • java枚举(enum)使用详解

    文章目录 前言一 枚举类型定义二 访问成员三 遍历四 在switch xff08 xff09 中使用枚举五 方法1 内置方法1 1 ordinal 用于返回成员的索引1 2 compareTo 用于比较枚举类型中两个成员的索引值1 3 va
  • enum 实现 Parcelable 接口

    enum 实现 Parcelable 接口 当你创建一个枚举 xff0c 想要使用上述插件时 xff0c 就会发现无法序列号 这个是因为 Parcel writeXXX 没有写入枚举的方法 xff0c 所以无法直接实现 Parcelable
  • 枚举(enum)

    一 什么是枚举 我们学习过单例模式 xff0c 即一个类只有一个实例 而枚举其实就是多例 xff0c 一个类有多个实例 xff0c 但实例的个数不是无穷的 xff0c 是有限个数的 例如word文档的对齐方式有几种 xff1a 左对齐 居中
  • 深入理解Java枚举类型(enum)

    版权申明 未经博主同意 xff0c 谢绝转载 xff01 xff08 请尊重原创 xff0c 博主保留追究权 xff09 http blog csdn net javazejian article details 71333103 出自 z
  • Java枚举的使用

    枚举类型可以取代以往常量的定义方式 即将常量封装在类或接口中 此外 枚举类型还提供了安全检查功能 枚举类型本质上还是以类的形式存在 1 使用枚举类型设置常量 以往设置常量 通常将常量放置在接口中 这样在程序中就可以直接使用了 并且该常量不能
  • C++枚举类型用法总结(enum)(可以用枚举字符常量代替常量)

    C 枚举类型enum表示枚举 通常用于定义个新类型的字符常量 比如enum January February March 枚举类型的作用域一般是整个文件或者类内 当枚举类型定义在文件开头时 则作用域是从定义位置开始往后 不包括函数内定义 当
  • Java,Enum里定义属性和方法

    最近的项目用到了大神写的统一返回码的代码 ErrorCode java 统一6位 异常码 author Administrator public enum ErrorCode global OK 000000 操作成功 ERROR 0000
  • C# 枚举 enum(学习心得 17)

    枚举是一组命名整型常量 枚举类型是使用 enum 关键字声明的 C 枚举是值类型 枚举包含自己的值 且不能继承或传递继承 超级小白友好 讲解C 基础 每集5分钟轻松学习 拒绝从入门到放弃 声明 enum
  • 浅谈Java Enum作用与应用场景

    在实际应用中 有的变量只有几种可能取值 如人的性别只有两种可能取值 星期只有七种可能取值 在 Java语言中对这样取值比较特殊的变量可以定义为枚举类型 所谓枚举是指将变量的值一一列举出来 变量只限于列举出来的值的范围内取值 枚举是一个特殊的

随机推荐

  • 电脑连接树莓派出现问题--(putty,VNC,MobaXterm和远程桌面连接)

    以下解决方法与问题是基于我之前给树莓派写的一个开机自启动python脚本导致的问题所提出的 如果你从来没有给树莓派写过脚本 xff0c 那我的这篇博客对现在的你来说没有帮助 xff0c 不用浪费时间了 今天在用PC的Putty ssh方式连
  • STM32+ESP-07S+MQTT服务器实现数据上传和接收

    参考文章 xff1a https blog csdn net weixin 46144773 article details 128793578 https docs ai thinker com esp8266 sdk esp32下载工具
  • Python问题:AttributeError: ‘str‘ object has no attribute ‘decode‘

    具体报错情况 xff1a AttributeError Traceback most recent call last lt ipython input 29 7b65833fd81b gt in lt module gt 8 from k
  • mount.nfs报错

    mount nfs requested NFS version or transport protocol is not supported 今天在挂载nfs时遇到mount nfs requested NFS version or tra
  • VMware虚拟机安装win10 32位

    VM15 43 Win10 32位 前期准备安装过程 前期准备 VMware Workstation15官方版下载 xff1a https www onlinedown net soft 2062 htm Win10 32位镜像下载 xff
  • AttributeError: ‘str‘ object has no attribute ‘value‘

    属性错误 xff1a str 对象没有属性 值 这是我在用python读取excel单元格的时候遇到的报错 xff0c cell对象没有属性值 xff0c 说明我的语法返回的是cell单元格对象而并非单元格的值 这时候只需将iter row
  • 算法题:马走日(C++)

    题目 xff1a 总时间限制 1000ms 内存限制 1024kB 描述 马在中国象棋以日字形规则移动 请编写一段程序 xff0c 给定n m大小的棋盘 xff0c 以及马的初始位置 x xff0c y xff0c 要求不能重复经过棋盘上的
  • WSL2-ubuntu1804安装以及一些个人使用调整

    文章目录 前言一 WSL是什么 xff1f 二 启用WSL21 首先确定自己的windows系统版本2 打开系统的虚拟化等一大堆功能3 切换默认模式至WSL2 三 安装WSL虚拟机 Ubuntu18041 下载安装 方法1 Microsof
  • LVM精简卷(Thinly-Provisioned Logical Volumes)的扩容

    LVM精简卷 Thinly Provisioned Logical Volumes 如果被人偷偷的在生产中使用 xff0c 紧急故障处理的时候 xff0c 可以一下子给人干懵 并且在百度还不能搜索到完整可用的文档 LVM精简卷的存在给我的感
  • Mac 备份 time machine开启全速备份

    Mac 备份非常慢 如果你的 Mac 是第一次在这个上面进行备份 xff0c 第一次备份一般都很慢 xff0c 可以调节参数的方式将其调节为全速进行备份 xff0c 记得备份完后将其调整回来 xff0c 否则可能会导致你的电脑在正常使用的时
  • 关于下载 http://arduino.esp8266.com/stable/package_esp8266com_index.json 出错的解决方法

    在使用 Arduino 43 NodeMCU 进行编程时 xff0c 有时候会出现如题所述的错误 xff0c 出错的网址是首选项中的 附加开发板管理器网址 xff0c 其意义是使得 Arduino 能够在开发板选项里找到ESP8266这块开
  • ubuntu 安装 qemu 提示 ERROR: glib-2.40 gthread-2.0 is required to compile QEMU and ERROR: pixman >= 0.21

    首先我们使用 xff1a apt cache search glib2 看看应该安装哪个库 sudo apt get install libglib2 0 dev 继续使用 apt cache search pixman 看看应该安装哪个库
  • 如何进行探索式数据分析?

    与数据同行 已开通综合 数据仓库 数据分析 产品经理 数据治理及机器学习六大专业群 xff0c 加微信号frank61822701 为好友后入群 新开招聘交流群 xff0c 请关注 与数据同行 公众号 xff0c 后台回复 招聘 后获得入群
  • Linux 移动或复制文件(文件夹)

    Linux 移动或复制文件 xff08 文件夹 xff09 命令格式 xff1a cp rf home backup default Public Public 复制 home backup default Public文件夹 到当前文件夹
  • 手把手教你配置阿里云服务器搭建网站

    写在前面 出于好奇 xff0c 我用学生优惠租了一台阿里云服务器 xff0c 打算做一些Java web的开发 xff0c 但是毕竟是第一次接触这样的东西 xff0c 还是比较懵逼 xff0c 在这个过程中遇到了一些问题 xff08 肯定会
  • Python

    人机交互 1 input 是输入函数 xff0c 会将所有输入做一个字符串类型的处理 a 61 input 作用 xff1a 显示出括号内的东西 xff0c 并要求用户输入一个东西 xff0c 赋给a 如果要有输入提示 xff0c 要在括号
  • PHP学习笔记——wampserver安装步骤

    1 wampserver的安装 安装链接 xff1a wampserver安装链接 选择 64 exe为后缀的安装包 xff08 前提是64位系统机器 xff09 选择语言 xff1a English 同意协议 next 选择安装路径 ne
  • 微博粉丝走势监控

    前言 因为之前写过很多爬虫 xff0c 然后近期也是选秀节目比较多 xff0c 像创造营 xff0c 青春有你等 一般情况下微博粉丝的增长速度是节目组比较关注的数据之一 因此 xff0c 想做一个简单的粉丝监控平台 xff0c 话不多说 x
  • ubuntu系统下各个目录的一般作用

    1 这是根目录 xff0c 一个Ubuntu系统下只有一个根目录 2 root 系统管理员的目录 3 boot 系统启动文件 4 bin 存放系统程序 5 etc 存放系统配置方面的文件 6 dev 存放与设备有观点文件 xff0c 例如
  • C/C++中枚举类型enum使用

    1 说明 xff1a 枚举enum的出现 xff0c 主要是为了解决一些特定属性的赋值 xff0c 变量取值仅在一定有限范围内的问题 例如一年只有十二个月取值 xff0c 一个星期只有七天情况 xff0c 人的性别只有男女两种等 这些属性如