前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >C语言——枚举类型

C语言——枚举类型

作者头像
用户11029137
发布于 2024-03-19 07:50:34
发布于 2024-03-19 07:50:34
1K06
代码可运行
举报
文章被收录于专栏:编程学习编程学习
运行总次数:6
代码可运行

一,什么是枚举类型

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

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

1,如何定义和声明

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
enum  枚举名
{
     成员项表列
}

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
enum 枚举名 变量名

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
enum color
{
	red=1,
	yellow=2,
	blue=3
};
int main()
{
	enum color a;
	return 0;
}

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#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,命名注意事项

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

以下是错误示范:

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
enum color
{
	red,
	yellow,
	blue
};
enum color
{
	green,
	black,
	white
};

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
enum color1
{
	red,
	yellow,
	blue
};
enum color2
{
	red,
	black,
	white
};

三,对变量进行赋值

1,使用成员赋值

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#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,强制类型转化,再赋值

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#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;
}

输出结果:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C语言 枚举类型在VS2010上无法实现自增,自减操作
如果一个变量只有几种可能的值,那么这个变量可以被定义为枚举类型。 枚举的意思就是把可能的值一一列举出来,那么变量的值也只限于列举出来的范围中。 枚举类型的说明: 1.声明:enum Color{red,yellow,blue,white,black}; 2.定义:enum Color i,j,k,pri; 3.枚举元素代表一个整数,默认顺序是从0开始,可以用%d来输出,比如
chaibubble
2022/05/07
8010
C语言 枚举类型在VS2010上无法实现自增,自减操作
[c语言日寄]枚举类型
在C语言的世界里,枚举类型(enum)是一种非常实用且强大的工具,它允许我们为一组整数值赋予有意义的名称,从而提高代码的可读性和可维护性。今天,我们就通过一个简单的程序来深入探讨枚举类型的使用。
siy2333
2025/03/24
480
【C语言】enum 关键字
🚩write in front🚩    🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 🏅2021年度博客之星物联网与嵌入式开发TOP5~2021博客之星Top100~阿里云专家博主 & 星级博主~掘金⇿InfoQ~51CTOP创作者~周榜109﹣总榜883⇿全网访问量35w+🏅 🆔本文由 謓泽 原创 CSDN首发🙉如需转载还请通知⚠ 📝个人主页-謓泽的博客_CSDN博客 📃 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 📣系列专栏-【C语言】关键字_謓泽的博
謓泽
2022/12/12
5970
【C语言】一篇文章深入解析联合体和枚举且和结构体的区别
联合体(union)是允许一个变量通过不同的接口访问内存的一种数据类型,表示一个变量可以存储不同类型的值,而枚举是使用enum关键字定义一组相关且互斥的整形常量集合。本章阿森将和你学习联合体类型的声明,特点,有关大小的计算,还有枚举类型的声明,优点和使用。文章干货满满!学习起来吧😃!
学习起来吧
2024/02/29
5300
【C语言】一篇文章深入解析联合体和枚举且和结构体的区别
联合体类型和枚举类型
对于联合体,其语法结构和结构体对比可以说唯一的变换就是把struct换成union,其他的都一模一样,所以我们知道了struct的语法结构相当于知道union的语法结构,其初始化和创建也就得心应手。(上篇文章已经讲了struct的语法结构(声明),这里就不讲了,不知道的可以翻到上篇文章看一下)
E绵绵
2024/04/08
1320
联合体类型和枚举类型
【C语言】联合体和枚举
但是编译器只为最大的成员分配足够的内存空间。联合体的特点是所有成员共用同一块内存空间。所以联合体也叫:共用体。
用户11290673
2024/09/25
1080
【C语言】联合体和枚举
C语言共用体与枚举类型-学习三十
本文最后更新于2022年02月26日,已超过2天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
XG.孤梦
2022/03/01
5500
C语言共用体与枚举类型-学习三十
轻松拿捏C语言——自定义类型之【联合体与枚举】
在union Un1中成员有两个,char c[5]占5个字节大小,在vs中1<8,所以char的对齐数为1,int i占4个字节大小,在vs中4<8,所以int类型对齐数为4, 所以在union Un1中最大对齐数为4。
用户11162265
2024/06/14
1590
轻松拿捏C语言——自定义类型之【联合体与枚举】
【C语言】自定义类型:联合和枚举
前面我们学习了一种自定义类型,结构体,现在我们学习另外两种自定义类型,联合 和 枚举。
云边有个稻草人
2024/10/21
820
【C语言】自定义类型:联合和枚举
C语言——N/自定义类型:联合和枚举
像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。但是编译器只为最⼤的成员分配⾜够的内存空间。联合体的特点是所有成员共⽤同⼀块内存空间。所以联合体也叫:共用体。 给联合体其中⼀个成员赋值,其他成员的值也跟着变化。
用户11015888
2024/03/11
1360
C语言——N/自定义类型:联合和枚举
【C语言程序设计——枚举】得到 3 种不同颜色的球的可能取法(头歌实践教学平台习题)【合集】
在程序设计过程中,如果一个变量仅在很小的范围内取值,则可以把它定义为枚举类型。使用枚举类型的变量能够提高程序的可读性。 所谓“枚举”就是把所有可能的取值情况列举出来。例如,真和假表示了逻辑值的两种情况,男和女是性别的两种取值情况,选修课成绩有“优”“良”“中”“及格”“不及格”5种取值情况。 定义枚举类型的一般格式为: enum 枚举类型名{标识符1,标识符2,……,标识符n}; 例如: enum bool{ false , true } ; 枚举变量的定义有3种形式(与结构体类似):
Rossy Yan
2024/12/24
1290
【C语言程序设计——枚举】得到 3 种不同颜色的球的可能取法(头歌实践教学平台习题)【合集】
【C语言 】自定义数据类型(二)
像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。 但是编译器只为最⼤的成员分配⾜够的内存空间。联合体的特点是所有成员共⽤同⼀块内存空间。所 以联合体也叫:共⽤体
用户11375356
2024/11/22
660
【C语言 】自定义数据类型(二)
C语言自定义类型联合体与枚举超详解
像结构体一样,联合体也是由一个或者多个成员构成,这些成员可以不同的类型。 但是编译器只为最大的成员分配足够的内存空间。联合体的特点是所有成员共用同一块内存空间。所以联合体也叫:共用体。 给联合体其中一个成员赋值,其他成员的值也跟着变化。
fhvyxyci
2024/09/24
1070
C语言自定义类型联合体与枚举超详解
C语言从入门到实战——联合体和枚举
C语言中,联合体(union)是一种特殊的数据类型,允许存储不同类型的数据在同一块内存空间中。联合体的大小取决于其中最大的成员的大小,共享同一块内存空间的成员可以存储不同类型的数据。
鲜于言悠
2024/03/20
2480
C语言从入门到实战——联合体和枚举
C语言结合体和枚举的魅力展现
引言: 前面我们已经讲了结构体的声明,自引用,内存对齐等,详细见《掌握C语言结构体,开启编程新世界》。有需要的可以回看。 今天我们讲的是枚举和结合体,这两个跟结构体很相像但也是还是有差别的。
秋邱
2024/10/09
1100
C语言结合体和枚举的魅力展现
【C语言基础】:自定义类型(二) -->联合和枚举
书山有路勤为径,学海无涯苦作舟。 创作不易,宝子们!如果这篇文章对你们有帮助的话,别忘了给个免费的赞哟~
爱喝兽奶的熊孩子
2024/04/10
1350
【C语言基础】:自定义类型(二) -->联合和枚举
枚举类型简单理解
  枚举类型声明为一组相关的符号常数定义了一个类型名称。枚举用于“多项选择”场合,就是程序运行时从编译时已经设定的固定数目的“选择”中做出决定。
zhangjiqun
2024/12/16
1190
C语言(枚举类型)
C语言中的枚举类型常年跑龙套当配角,不受待见,这当然是有其个人原因的。今天来个小知识,看看枚举为什么那么衰,也顺便看看怎么用。
用户2617681
2019/08/08
1.9K0
C语言(枚举类型)
【C语言】自定义类型之联合和枚举
像结构体一样,联合体也是由一个或者多个成员构成,这些成员可以不同的类型。但是编译器只为最大的成员分配足够的内存空间。 联合体的特点是所有成员共用同一块内存空间。所以联合体也叫:共用体。
zxctscl
2024/01/23
1400
【C语言】自定义类型之联合和枚举
高阶C语言|枚举与联合
在以上定义的 enum Day、enum Sex、enum Color 中,{} 内的内容是枚举类型的可能取值,也叫枚举常量。
我想吃余
2025/03/31
980
相关推荐
C语言 枚举类型在VS2010上无法实现自增,自减操作
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档