C语言——枚举类型

📝前言:
在之前的文章中我们已经讲解了自定义类型中的结构体类型和联合体类型,现在我们再充分学习一下C语言中的枚举类型:
1,什么是枚举类型
2,枚举类型的定义和变量的声明
3,对变量进行赋值

🎬个人简介:努力学习ing
📋个人专栏:C语言入门基础
🎀CSDN主页 愚润求学
🌄每日鸡汤:新的一年,祝大家:龙年行大运


文章目录

  • 一,什么是枚举类型
  • 二,枚举类型的定义和变量的声明
    • 1,如何定义和声明
    • 2,关于枚举类型中成员的赋值
    • 3,命名注意事项
  • 三,对变量进行赋值
    • 1,使用成员赋值
    • 2,强制类型转化,再赋值

一,什么是枚举类型

简单来说,枚举类型就是可以让我们给整数值分配有意义的名字,从而使得代码更易读、易维护

二,枚举类型的定义和变量的声明

1,如何定义和声明

枚举类型的定义和变量的声明方式也与结构体和联合体相似
(一)枚举类型的定义👇🏻

enum  枚举名
{成员项表列
}

(二)枚举变量的声明👇🏻

enum 枚举名 变量名

举例:我们定义一个代表颜色的枚举类型,然后创建一个枚举变量a 👇🏻

enum color
{red=1,yellow=2,blue=3
};
int main()
{enum color a;return 0;
}

这个 {} 里面的变量red yellow blue都有其对应的特定的,不变的整数,所以这些变量也被叫做枚举常量
当我们引用这些变量的时候,就会输出他们所代表的值,如👇🏻

#include<stdio.h>
enum color
{red=1,yellow=2,blue=3
};
int main()
{printf("%d\n", red);printf("%d\n", yellow);printf("%d\n", blue);return 0;
}

输出结果:
在这里插入图片描述

2,关于枚举类型中成员的赋值

如果我们在创建枚举变量时,为未给成员进行初始化赋值,则C语言会自动赋值
遵循:默认从0开始,依次增1
如果只有前几个值,那么后面未被赋值的成员也会被自动赋值,遵循依次增1

例子一(不赋值)👇🏻
在这里插入图片描述
例子二(讲将第一个成员赋值为3,后面的不赋值)👇🏻
在这里插入图片描述
注意:一旦枚举类型的成员被赋值后,则变成枚举常量,不能再被修改!

3,命名注意事项

同一个程序中不能定义同名的枚举类型;不同的枚举类型中,也不能存在同名的枚举成员。

以下是错误示范:

(一)定义了同名的枚举类型👇🏻

enum color
{red,yellow,blue
};
enum color
{green,black,white
};

(二)存在同名的枚举成员👇🏻

enum color1
{red,yellow,blue
};
enum color2
{red,black,white
};

三,对变量进行赋值

1,使用成员赋值

⭐C语言中的枚举变量通常只能被赋值为枚举类型中定义的成员。
例如,我们给下面的枚举变量a b c赋值👇🏻
【只能使用成员red yellow blue

#include<stdio.h>
enum color
{red = 1,yellow = 2,blue = 3
};
int main()
{enum color a, b, c;a = red;b = yellow;c = blue;return 0;
}

2,强制类型转化,再赋值

如果我们非要给枚举类型的变量赋整数值,则对枚举型的变量赋整数值时,需要进行类型转换

#include<stdio.h>
enum color
{red = 1,yellow = 2,blue = 3
};
int main()
{enum color c;c = (enum color)10;  //强制类型转换printf("%d\n", c);return 0;
}

输出结果:
在这里插入图片描述


🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!

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

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

相关文章

455. Assign Cookies(分发饼干)

题目描述 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的饼干的最小尺寸&#xff1b;并且每块饼干 j&#xff0c;都有一个…

OpenCompass 大模型评测

在浦语的大模型评测教程课程中&#xff0c;你可能需要完成的任务包括&#xff1a; 先修知识准备&#xff1a;这里你需要理解并掌握深度学习、NLP和PyTorch等相关知识。因为这些都是进行大模型评测的基础。模型理解&#xff1a;你需要对你要评测的模型有一个全面的理解&#xf…

FPGA实现ISP用于无人车、无人机配送的方案调研

查到一个always 奥唯思公司做的用FPGA实现ISP的方案&#xff0c;采用易灵思钛金16nm的FPGA Ti60F225&#xff0c;通过MIPI CSI RX采集图像传感器的数据&#xff0c;在FPGA内部经过一系列复杂的ISP运算后&#xff0c;再通过MIPI CSI TX将图像数据发送给后端。 一套完整的ISP&a…

【算法分析与设计】环形链表

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;算法分析与设计 ⛺️稳中求进&#xff0c;晒太阳 题目 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次…

实景剧本杀小程序:创新体验,沉浸式推理乐趣

随着科技的飞速发展&#xff0c;人们对于娱乐方式的追求也在不断升级。传统的桌面剧本杀游戏已经不能满足玩家的需求&#xff0c;他们渴望更加真实、刺激的游戏体验。正是这种需求推动下&#xff0c;实景剧本杀小程序应运而生&#xff0c;为玩家带来前所未有的推理乐趣。 实景…

【基础】第K大与第K小数

说明 给定一个长度为N(0< n< 10000)的序列&#xff0c;保证每一个序列中的数字a[i]是正整数 &#xff0c;编程要求求出整个序列中第k大的数字减去第k小的数字的值m&#xff0c;并判断m是否为质数。(0< k< n) 输入数据 第一行为2个数n&#xff0c;k&#xff08;…

ChatGPT高效提问—prompt常见用法(续篇八)

ChatGPT高效提问—prompt常见用法(续篇八) 1.1 对抗 ​ 对抗是一个重要主题,深入探讨了大型语言模型(LLM)的安全风险。它不仅反映了人们对LLM可能出现的风险和安全问题的理解,而且能够帮助我们识别这些潜在的风险,并通过切实可行的技术手段来规避。 ​ 截至目前,网络…

【Android】使用Android Studio打包APK文件

文章目录 1. 新建项目2. 打包生成APK3. 安装APK 1. 新建项目 打包APK之前&#xff0c;首先需要新建项目&#xff0c;有基础的可以跳过。 无基础的可以参考&#xff1a;使用Android Studio运行Hello World项目 2. 打包生成APK 1.找到Build -> Generate Signed Bundle or …

AMD FPGA设计优化宝典笔记(4)复位桥

高亚军老师的这本书《AMD FPGA设计优化宝典》&#xff0c;他主要讲了两个东西&#xff1a; 第一个东西是代码的良好风格&#xff1b; 第二个是设计收敛等的本质。 这个书的结构是一个总论&#xff0c;加上另外的9个优化&#xff0c;包含的有&#xff1a;时钟网络、组合逻辑、触…

机器视觉范例及深入

1.做一个魔法棒吧 获得了物体的坐标后&#xff0c;可以用它来完成一些有趣的事情&#xff0c;例如把物体当作“笔”在图像 上绘制出图样。我们可以选择一种颜色的黏土&#xff0c;将其固定在任意棒状物&#xff08;例如铅笔&#xff09;的一端 并揉成球形&#xff0c;做一个 …

函数求导法则【高数笔记】

【分类】 1. 四则运算求导 2. 复合运算求导 3. 整体思想求导 #整体思想求导本质是运用复合运算求导&#xff0c;只不过是对复合运算求导的一种精炼 #无论是具体函数还是抽象函数求导&#xff0c;方法是一致的 【四则运算求导】 加&#xff0c;减&#xff0c;乘&#xff0c;除&a…

Java基于微信小程序的电子竞技信息交流平台

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

Promise与async await的作用及应用场景

在Web前端开发中&#xff0c;处理异步操作是非常常见的需求。为了解决这个问题&#xff0c;ES6引入了Promise和后续的async await。本文将介绍Promise和async await的作用&#xff0c;以及在实际开发中的应用场景。 一、Promise的作用及应用场景 Promise是一个表示异步操作最…

【程序设计竞赛】C++与Java的细节优化

必须强调下&#xff0c;以下的任意一种优化&#xff0c;都应该是在本身采用的算法没有任何问题情况下的“锦上添花”&#xff0c;而不是“雪中送炭”。 如果下面的说法存在误导&#xff0c;请专业大佬评论指正 读写优化 C读写优化——解除流绑定 在ACM里&#xff0c;经常出现…

Hive调优——合并小文件

目录 一、小文件产生的原因 二、小文件的危害 三、小文件的解决方案 3.1 小文件的预防 3.1.1 减少Map数量 3.1.2 减少Reduce的数量 3.2 已存在的小文件合并 3.2.1 方式一&#xff1a;insert overwrite (推荐) 3.2.2 方式二&#xff1a;concatenate 3.2.3 方式三&#xff…

支付交易——重试服务

摘要 为了能在最大限度满足顾客要求的前提下尽可能降低成本&#xff0c;老王在开店的过程中想了很多方法。这充分体现出老王作为一个商人的特质:不放过一个订单&#xff0c;不浪费一分钱。 老王就这样在自己的生意上兢兢业业多年&#xff0c;想着应该不会有什么纰漏。但现实很…

常见单例模式详解

单例模式是23种设计模式中应用最广的模式之一&#xff0c;其定义&#xff1a;确保某一个类只有一个实例&#xff0c;而且自行实实例化并向整个系统通过这个实例。其类图如下&#xff1a; 通俗来说&#xff0c;单例模式就是用于创建那些在软件系统中独一无二的对象。在一个软件系…

来不及哀悼了,接下来上场的是C语言内存函数memcpy,memmove,memset,memcmp

今天又来写一篇C的文章&#xff0c;这里要讲的是C语言中的几个内存函数&#xff0c;主要是讲解功能和用法&#xff0c;望能耐心观看哦。望官方也多多曝光。 目录 memcpy memmove memset memcmp memcpy memcpy 是 C 语言标准库中的一个函数&#xff0c;用于复制内存块的内容…

基于Transformer的机器学习模型的主动学习

主动学习和基于Transformer的机器学习模型的结合为有效地训练深度学习模型提供了强有力的工具。通过利用主动学习&#xff0c;数据科学家能够减少训练模型所需的标记数据的数量&#xff0c;同时仍然达到高精度。本文将探讨基于Transformer的机器学习模型如何在主动学习环境中使…

MySQL数据库⑩_视图+MySQL用户管理(增删查改)

目录 1. 视图的概念和规则限制 2. 视图的基本使用 2.1 创建视图 2.2 修改视图影响基表 2.3 修改基表影响视图 2.4 删除视图 3. MySQL用户管理 3.1 用户信息 3.2 创建用户 3.3 修改用户密码 3.4 删除用户 4. 用户权限 4.1 MySQL权限 4.2 给用户授权 4.3 回收权限…