当前位置: 首页 > news >正文

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.lryc.cn/news/299706.html

相关文章:

  • linux---内存管理
  • v-model原理
  • 波奇学Linux:文件系统
  • 项目访问量激增该如何应对
  • 【Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)】
  • 幻兽帕鲁官方更新了,服务器端怎么更新?
  • axios-retry 响应异常
  • Vue项目创建和nodejs使用
  • 【机器学习案例3】从科学论文图片中提取标题、作者和摘要【含源码】
  • 【开源】JAVA+Vue.js实现天然气工程运维系统
  • 什么是智慧隧道,如何建设智慧隧道
  • jupyter notebook
  • MongoDB聚合:$listSearchIndexes
  • Excel练习:日历
  • 【C语言】指针练习篇(上),深入理解指针---指针和数组练习题和sizeof,strlen的对比【图文讲解,详细解答】
  • 2048游戏C++板来啦!
  • 2000-2021年县域指标统计数据库
  • Hive on Spark配置
  • 计算机网络——11EMail
  • 第13讲创建图文投票
  • Vulnhub靶机:DC3
  • 代码随想录算法训练营第三十一天|● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和
  • 【光学】学习记录1-几何光学的近轴理论
  • 【51单片机】AT24C02(江科大、爱上半导体)
  • nohup基本使用
  • postgresql 手动清理wal日志的101个坑
  • 【开源训练数据集3】Top3人脸数据集及其使用方法-计算机视觉应用
  • 精灵图,字体图标,CSS3三角
  • .NET Core性能优化技巧
  • 人类智能远远超越了物理与数理范畴