C语言枚举类型(enum)的各种用法

C语言枚举类型(enum)的各种用法枚举 enum 就是英文 enumerate 的缩写 也就是列举 排列说明的意思 枚举类型是 C 语言中的一种特殊类型 枚举类型可以让我们的程序使用一些固定长度和固定数值的变量值范围

一、 基本概念

枚举enum就是英文enumerate的缩写,也就是列举、排列说明的意思。枚举类型是C语言中的一种特殊类型,枚举类型可以让我们的程序使用一些固定长度和固定数值的变量值范围。定义枚举类型:enum 枚举类型 {枚举值列表};

二、枚举类型的使用

1、定义枚举类型

//枚举颜色 enum color{ 
   red=1, oreange=2, yellow=3, green=4, ching=5, blue=6, purple=7}; //枚举一个星期的每一天 enum week { 
    Su, Mo, Tu, We, Th, Fr, Sa }; //枚举每一个月 enum month { 
    January, February, March, April, May, June, July, August, September, October, November, December }; 

这样枚举出来的都是一推变量,引用时:

printf("%-3d %-3d %-3d %-3d %-3d %-3d %-3d", red, oreange, yellow, green, ching, blue, purple); 

也就是直接使用,会直接输出对应的值。

2、定义枚举类型的变量

enum week a, b, c; a = Su; b = Mo; c = Tu; enum month d, e, f; d = January; e = February; f = March; 

3、调用枚举类型变量
每周的日期和每月份的输出也是这样:

enum week a, b, c; a = Su; b = Mo; c = Tu; printf("%d %d %d\n", a, b, c); enum month d, e, f; d = January; e = February; f = March; printf("%d %d %d\n", d, e, f); 

4、如果在定义枚举类型时指定元素的值,也可以改变枚举元素的值
例如:
enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat}day;
这时,sun 为 7,mon 为 1,以后元素顺次加 1,所以 sat 就是 6 了。






5、枚举值可以用来作判断
例如:
if (day==month) {…}
if (day>month) {…}
枚举值的比较规则是:按其在说明时的顺序号比较,如果说明时没有人为指定,则第一个枚举元素的值认作 0。








6、一个整数不能直接赋给一个枚举变量,必须强制进行类型转换才能赋值

三、枚举案例

#include  
     void main() { 
    enum weekday { 
   sun,mon,tue,wed,thu,fri,sat} day; int k; printf("请输入0到6的数:"); scanf("%d",&k); day=(enum weekday)k; switch(day) { 
    case sun: printf("sunday\n");break; case mon: printf("monday\n");break; case tue: printf("tuesday\n");break; case wed: printf("wednesday\n");break; case thu: printf("thursday\n");break; case fri: printf("friday\n");break; case sat: printf("satday\n");break; default: printf("input error\n");break; } } 

输入0-6中的一个数字,能够输出对应的星期。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212372.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午8:11
下一篇 2026年3月18日 下午8:12


相关推荐

  • OpenClaw安装部署教程

    OpenClaw安装部署教程

    2026年3月13日
    2
  • windows10 系统设置一键备份

    windows10 系统设置一键备份1、打开pe下优启通桌面的EIX系统安装;2、分区备份—–C盘——-新建映像文件3、选择保存路径,非C盘,重命名;4、一键备份5、确认;

    2022年6月25日
    34
  • 最新goland永久激活破解方法

    最新goland永久激活破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    84
  • 真实评测-千问图像2.0VS即梦5.0:AI生图的能力边界在哪里?

    真实评测-千问图像2.0VS即梦5.0:AI生图的能力边界在哪里?

    2026年3月13日
    3
  • Qt播放器学习

    Qt播放器学习Phonon库安装:进入源代码的phonon目录,如”../qt-everywhere-opensource-src-4.6.0/src/phonon”,实际代码并不在里面,从phonon.pro文件可知源代码在“/src/3rdparty/phonon/phonon”,但并不影响编译。在终端输入“make;makeinstall”即可,如果安装时出错,也可手动将lib、includ

    2022年6月10日
    29
  • 3dmax建模前景_3d建模师未来发展前景

    3dmax建模前景_3d建模师未来发展前景简单来说,没前途。本来不想说这个话题的,但是想了好久,觉得还是来说两句。我本人是从事建筑表现效果图行业的,主要用的软件就是3DMAX+VRay+PS。正式从业到现在已经三年了,半路出家。3DMAX这个软件深入很多个行业,广告、影视、工业设计、建筑设计、三维动画、多媒体制作、游戏、以及工程可视化等。但其实没有哪个行业是只用这一款软件的,在不少行业3DMAX也逐步被更新的软件替代。MAX强大在它是一个平台,所以他的上限很高,比一般的软件都要高很多,但是下限也很高,不是那么容易上手。.

    2025年10月28日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号