枚举类型缝缝补补

 ✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉

🍎个人主页:橘橙黄又青-CSDN博客

1.关键字enum的定义

enum是C语言中的一个关键字,enum叫枚举数据类型,枚举数据类型描述的是一组整型值的集合(这句话其实不太妥当),枚举型是预处理指令#define的替代,枚举和宏其实非常类似,宏在预处理阶段将名字替换成对应的值,枚举在编译阶段将名字替换成对应的值。

⽐如我们现实⽣活中:
⼀周的星期⼀到星期⽇是有限的7天,可以⼀⼀列举
案例1:
如果用#define
#defineMON 1
#defineTUE 2
#defineWED 3
#defineTHU 4
#defineFRI 5
#defineSAT 6
#defineSUN 7

个看起来代码量就比较多,接下来我们看看使用枚举的方式.

格式:

enum Day//星期
{//枚举常量,一旦定义不可以改Mon = 1,Tues,Wed,Thur,Fri,Sat,Sun
}day;
//day枚举变量,也可以在函数内部创建枚举变量如:
//enum Day s = 9;
//枚举变量的值可以修改

在这里补充一个点:

 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。在当前值没有赋值的情况下,枚举类型的当前值总是前一个值+1.

案例2:

#include<stdio.h>enum S {Mon = 1,Tues,Wed,Thur,Fri,Sat,Sun
}s;
int main()
{printf("%d %d %d %d %d %d %d", Mon, Tues, Wed, Thur, Fri, Sat, Sun);return 0;
}

输出结果:

当然,里面的值改了也一样:

#include<stdio.h>enum S {Mon = 1,Tues,Wed,Thur = 26,Fri,Sat,Sun
}s;
int main()
{printf("%d %d %d %d %d %d %d", Mon, Tues, Wed, Thur, Fri, Sat, Sun);return 0;
}

输出结果:

2.注意事项

1) 枚举列表中的 Mon、Tues、Wed 这些标识符的作用范围是全局的(严格来说是 main() 函数内部),不能再定义与它们名字相同的变量。

2) Mon、Tues、Wed 等都是常量,不能对它们赋值,只能将它们的值赋给其他的变量。

枚举和宏其实非常类似:宏在预处理阶段将名字替换成对应的值,枚举在编译阶段将名字替换成对应的值。我们可以将枚举理解为编译阶段的宏。

第二点:

3.枚举总结

(1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。

(2)DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。

(3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。在当前值没有赋值的情况下,枚举类型的当前值总是前一个值+1.

(4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。

(5) 枚举型是预处理指令#define的替代。

(6) 类型定义以分号;结束。

4.枚举类型大小

#include <stdio.h>enum escapes
{BELL = '\a',BACKSPACE = '\b',HTAB = '\t',RETURN = '\r',NEWLINE = '\n',VTAB = '\v',SPACE = ' '
};
enum BOOLEAN { FALSE = 0, TRUE } match_flag;
void main()
{printf("%d bytes \n", sizeof(enum escapes); //4 bytesprintf("%d bytes \n", sizeof(enum BOOLEAN)); //4 bytesprintf("%d bytes \n", sizeof(match_flag)); //4 bytesprintf("%d bytes \n", sizeof(SPACE)); //4 bytesprintf("%d bytes \n", sizeof(NEWLINE)); //4 bytesprintf("%d bytes \n", sizeof(FALSE)); //4 bytesprintf("%d bytes \n", sizeof(0)); //4 bytes
}

输出结果:

所以说:枚举类型里面的枚举常量都是int类型

5.使用枚举类型的变量 

1,对枚举型的变量赋值

案例1:

#include<stdio.h>
/* 定义枚举类型 */
enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN };
void main()
{
/* 使用枚举类型声明变量,再对枚举型变量赋值 */
enum DAY yesterday, today, tomorrow;yesterday = MON;
today = TUE;
tomorrow = WED;
printf("%d %d %d \n", yesterday, today, tomorrow);
}

2.错误:对枚举型的常量量赋值

枚举常量一但定义将不可修改 

好了今天就到这里了,都看到这里了点一个赞吧,感谢观看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/633589.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

提示词工程: 大语言模型的Embedding(嵌入和Fine-tuning(微调)

本文是针对这篇文章&#xff08;https://www.promptengineering.org/master-prompt-engineering-llm-embedding-and-fine-tuning/&#xff09;的中文翻译&#xff0c;用以详细介绍Embedding&#xff08;语义嵌入&#xff09;和Fine Tuning&#xff08;微调&#xff09;的概念和…

【云原生之kubernetes实战】在k8s环境下部署Mikochi文件管理工具

【云原生之kubernetes实战】在k8s环境下部署Mikochi文件管理工具 一、Mikochi介绍二、本次实践介绍2.1 本次实践简介2.2 本次环境规划三、检查k8s环境3.1 检查工作节点状态3.2 检查系统pod状态四、安装helm工具4.1 下载软件包4.2 解压软件包4.3 复制二进制文件4.4 检查helm版本…

在分类任务中准确率(accuracy)、精确率(precision)、召回率(recall)和 F1 分数是常用的性能指标,如何在python中使用呢?

在机器学习和数据科学中&#xff0c;准确率&#xff08;accuracy&#xff09;、精确率&#xff08;precision&#xff09;、召回率&#xff08;recall&#xff09;和 F1 分数是常用的性能指标&#xff0c;用于评估分类模型的性能。 1. 准确率&#xff08;Accuracy&#xff09;…

Linux文件同步

Linux文件同步 scp简介基本用法 rsync简介基本用法 tftp简介基本用法 其他命令ftpsftplftp 此博客将主要介绍Linux文件同步常用的两种命令&#xff1a;scp&#xff08;secure copy&#xff09;、rsync&#xff08;remote synchronization&#xff09;和tftp&#xff08;Trivial…

2018年认证杯SPSSPRO杯数学建模D题(第二阶段)投篮的最佳出手点全过程文档及程序

2018年认证杯SPSSPRO杯数学建模 D题 投篮的最佳出手点 原题再现&#xff1a; 影响投篮命中率的因素不仅仅有出手角度、球感、出手速度&#xff0c;还有出手点的选择。规范的投篮动作包含两膝微屈、重心落在两脚掌上、下肢蹬地发力、身体随之向前上方伸展、同时抬肘向投篮方向…

【Flink-1.17-教程】-【三】Flink 运行架构、Flink 核心概念【并行度、算子链、任务槽】、Flink 作业提交流程

【Flink-1.17-教程】-【三】Flink 运行架构、Flink 核心概念【并行度、算子链、任务槽】、Flink 作业提交流程 1&#xff09;系统架构1.1.系统成员组成1.2.作业提交流程 2&#xff09;核心概念2.1. 并行度&#xff08;Parallelism&#xff09;2.1.1.并行子任务和并行度2.1.2.并…

pyDAL一个python的ORM(终) pyDAL的一些性能优化

一、大批量插入数据 对于 大量数据插入时&#xff0c;虽然pyDAL也手册中有个方法&#xff1a;bulk_insert()&#xff0c;但是手册也说了&#xff0c;虽然方法上是一次可以多条数据&#xff0c;如果后端数据库是关系型数据库&#xff0c;他转换为SQL时它是一条一条的插入的&…

【Linux修行路】基本指令

目录 推荐 前言 1、重新认识操作系统 1.1 操作系统是什么? 1.2操作系统的作用 1.3 我们在计算机上的所有操作 1.4 Linux操作的特点 2、Linux基本指令 2.1 ls 指令 2.2 pwd 命令 2.3 cd 指令 2.3.1 Linux中的目录结构 2.3.2 绝对路径和相对路径 2.3.3 cd 指令 …

2024年科学教育与人文艺术发展国际会议(ICSEHAD 2024)

2024年科学教育与人文艺术发展国际会议(ICSEHAD 2024) 2024 International Conference on Science Education and Humanities and Arts Development(ICSEHAD 2024) 数据库&#xff1a;EI,CPCI,CNKI,Google Scholar等检索 一、【会议简介】 2024年科学教育与人文艺术发展国际会议…

VS支持cuda源码高亮

工具-选项-文本编辑器&#xff0c;添加.cu和.cuh

机器学习之蚁群算法

概念 机器学习中的蚁群算法是一种启发式算法,灵感来源于蚁群在寻找食物时的行为。这种算法模拟了蚂蚁群体的集体智慧,通过多个个体之间的相互合作来解决问题。蚁群算法通常用于解决优化问题,例如路径规划、任务分配和调度等。 基本思想是通过模拟蚂蚁在搜索过程中释放的信…

Onenote是什么?笔记软件Onenote使用指南:简介|功能|下载|替代软件

OneNote是什么&#xff1f; OneNote是微软公司开发的一款强大的笔记软件&#xff0c;它允许用户在各种设备上创建、组织和搜索笔记。OneNote以其灵活的布局和强大的编辑功能而闻名&#xff0c;它可以帮助个人和团队记录信息、规划项目、协作和分享知识。 *笔记软件OneNote On…

Linux性能监控命令-ps

ps 命令是最常用的监控进程的命令&#xff0c;通过此命令可以查看系统中所有运行进程的详细信息 参数&#xff1a; a&#xff1a;显示一个终端的所有进程&#xff0c;除会话引线外&#xff1b; u&#xff1a;显示当前用户进程及内存的使用情况&#xff1b; x&#xff1a;显示…

Python项目——久坐提醒定时器(PySide6)编写

1、介绍 使用Python编写一个久坐提醒软件。功能&#xff1a; 设置工作时间。设置休息时间。选择休息时是否播放音乐。休息时&#xff0c;软件置顶&#xff0c;且不能关闭。 2、工具 语言&#xff1a;python3.11UI设计工具&#xff1a;Qt designer编译器&#xff1a;PyCharm包…

老子云支持70+格式模型转FBX/OBJ/STL/STP,一键处理无损转换!

老子云3D可视化平台是一个集合了3D编辑器、单模型轻量化、倾斜摄影轻量化、格式转换等一站式3D开发功能的强大技术平台。无论您是设计师、工程师还是科研人员&#xff0c;都可以在这个平台上轻松实现您的创意和想法。 老子云3D可视化平台是一个集合了3D编辑器、单模型轻量化、…

CAN数据记录仪解决汽车电子与工程机械冬测难点

CAN数据记录仪在汽车电子与工程机械冬测中扮演着重要的角色。在寒冷的冬季&#xff0c;汽车可能会因为环境温度过低而出现各种问题&#xff0c;例如电池电量不足、发动机启动困难等。为了确保汽车在冬季的正常运行&#xff0c;需要对汽车进行电子冬测。 CAN数据记录仪在冬测中发…

从临床预测模型到临床实践的三个问题探讨

从临床预测模型到临床实践的三个问题探讨 摘要&#xff1a; 本文就临床预测模型进入到临床实践过程中会遇到的三个问题&#xff0c;如何构建预测模型应用&#xff0c;如何确定决策阈值和如何符合伦理要求&#xff0c;进行了举例说明。希望通过这三个问题的探讨而使预测模型能够…

基于网络爬虫的天气数据分析

二、网络爬虫设计 网络爬虫原理 网络爬虫是一种自动化程序&#xff0c;用于从互联网上获取数据。其工作原理可以分为以下几个步骤&#xff1a; 定义起始点&#xff1a;网络爬虫首先需要定义一个或多个起始点&#xff08;URL&#xff09;&#xff0c;从这些起始点开始抓取数据…

文本按照标点符号切分符号丢掉问题

问题&#xff1a;文本按照标点符号切分符号丢掉问题 项目场景&#xff1a;需要对一个文字段落按照标点符号切分成一个个句子&#xff0c;使用正则切分的过程中发现标点符号丢了&#xff0c; 问题描述 文本按照标点符号切分符号丢掉问题 原始代码&#xff1a; public static v…

LangChain输出解析器

大型语言模型&#xff08;或 LLM&#xff09;生成文本&#xff0c;当你构建应用程序时&#xff0c;有时需要使用结构化数据而不是字符串。 LangChain 提供了输出解析器&#xff0c;可以帮助我们做到这一点。 我们将回顾 LangChain 提供的 Pydantic (JSON) 解析器。 NSDT工具推…