iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >c语言中enum类型的用法案例讲解
  • 426
分享到

c语言中enum类型的用法案例讲解

2024-04-02 19:04:59 426人浏览 泡泡鱼
摘要

11.10 枚举类型 在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它

11.10 枚举类型

在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。

应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。

11.10.1 枚举类型的定义和枚举变量的说明

1. 枚举的定义

枚举类型定义的一般形式为:

enum 枚举名{ 枚举值表 };

在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。

例如:

该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。

2. 枚举变量的说明

如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。

设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式:

enum weekday{ sun,mou,tue,wed,thu,fri,sat };

enum weekday a,b,c;

或者为: enum weekday{ sun,mou,tue,wed,thu,fri,sat }a,b,c;

或者为: enum { sun,mou,tue,wed,thu,fri,sat }a,b,c;

11.10.2 枚举类型变量的赋值和使用

  枚举类型在使用中有以下规定:

1. 枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。 例如对枚举weekday的元素再作以下赋值: sun=5; mon=2; sun=mon; 都是错误的。

2. 枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,…,sat值为6。

【例11.10】


main(){
enum weekday
{ sun,mon,tue,wed,thu,fri,sat } a,b,c;
a=sun;
b=mon;
c=tue;
printf("%d,%d,%d",a,b,c);
}

说明: 只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如:

a=sum;

b=mon;

是正确的。而:

a=0;

b=1;

是错误的。如一定要把数值赋予枚举变量,则必须用强制类型转换。 如:

a=(enum weekday)2;

其意义是将顺序号为2的枚举元素赋予枚举变量a,相当于:

a=tue; 还应该说明的是枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。

【例11.11】


main(){
enum body
{ a,b,c,d } month[31],j;
int i;
j=a;
for(i=1;i<=30;i++){
month[i]=j;
j++;
if (j>d) j=a;
}
for(i=1;i<=30;i++){
switch(month[i])
{
case a:printf(" %2d %c\t",i,'a'); break;
case b:printf(" %2d %c\t",i,'b'); break;
case c:printf(" %2d %c\t",i,'c'); break;
case d:printf(" %2d %c\t",i,'d'); break;
default:break;
}
}
printf("\n");
}

到此这篇关于c语言中enum类型的用法案例讲解的文章就介绍到这了,更多相关C语言中enum类型用法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: c语言中enum类型的用法案例讲解

本文链接: https://www.lsjlt.com/news/130083.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • c语言中enum类型的用法案例讲解
    11.10 枚举类型 在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它...
    99+
    2022-11-12
  • C语言 socketpair用法案例讲解
    socketpair()函数的声明: #include <sys/types.h> #include <sys/socket.h> int socketp...
    99+
    2022-11-12
  • c语言枚举类型enum的用法及应用实例
    目录前言一、枚举的概念二、枚举的几种用法1.直接定义枚举值,然后给普通变量赋值。2.定义带名称的枚举三、定义枚举别名四、枚举有什么用,用在哪里?最后总结:前言 今天跟大家讲一下我在产...
    99+
    2022-11-12
  • C语言数据类型枚举enum全面详解示例教程
    目录一、枚举类型的定义二、枚举类型的使用2.1创建变量2.2一些优点总结一、枚举类型的定义 enum Day//enum Day是一种类型 { Mon,//周一到周日这些叫枚举...
    99+
    2022-11-12
  • C语言通过案例讲解并发编程模型
    目录1、按照指定的顺序输出2、生产者消费者模型3、读写锁下面代码、思路等来源于b站郭郭 和CSAPP样例,同时希望大家好好读一下CSAPP的内容,真的讲的很好 1、按照指定的顺序输出...
    99+
    2022-11-13
  • C语言示例讲解ifelse语句的用法
    目录1、前言2、if语句的语法结构3、关于if else语句的示例4、if else 书写形式的对比5、例子1、前言 (1)C语言是结构化的程序设计语言。C语言的三种基本程序结构分别...
    99+
    2022-11-13
  • C语言指针引用数组案例讲解
    前言:C语言中指针玩的是什么,是内存,要想学好指针的小伙伴们要先对数据在内存中是怎么玩的做一番了解~       当在...
    99+
    2022-11-12
  • C语言实例讲解嵌套语句的用法
    目录一 、if 嵌套二、比较ab两个数值大小三、总结一 、if 嵌套 格式: if ( 条件 ){    if( 嵌入一个条件 ){   &n...
    99+
    2022-11-13
  • C语言 CRITICAL_SECTION用法案例详解
          很多人对CRITICAL_SECTION的理解是错误的,认为CRITICAL_SECTION是锁定了资源,其实,CRITICAL_SECTI...
    99+
    2022-11-12
  • C语言详细分析讲解关键字enum与sizeof及typedef的用法
    目录一、枚举类型的使用方法二、sizeof 关键字的用法三、typedef 的意义四、小结一、枚举类型的使用方法 enum 是 C 语言中的一种自定义类型enum 值是可以根据需要自...
    99+
    2022-11-13
  • C语言示例讲解for循环的用法
    目录1、循环语句for的语法2、for循环中的break以及continue3、for语句的循环变量控制的一些建议4、for循环的变种5、题目1、循环语句for的语法 for (表达...
    99+
    2022-11-13
  • C语言示例讲解while循环语句的用法
    目录1、while语句结构2、代码示例在学习和回顾该知识前,已经掌握了if语句的结构和用法。 if (条件)    语句; 当条件满足的情况下,if结构...
    99+
    2022-11-13
  • C语言示例讲解switch分支语句的用法
    目录1、了解switch分支语句2、示例3、default子句4、练习1、了解switch分支语句 switch语句也是一种分支语句,常常用于多分支的情况。 比如: 输入1,就会输出...
    99+
    2022-11-13
  • C语言示例讲解do while循环语句的用法
    目录1、do while()循环-先执行后判断2、do while中的break以及continue3、练习4、猜数字游戏1、do while()循环-先执行后判断 do语句的语法 ...
    99+
    2022-11-13
  • C语言简明讲解类型转换的使用与作用
    目录一、类型之间的转换二、强制类型转换三、隐式类型转换四、表达式中的隐式类型转换五、小结一、类型之间的转换 C语言中的数据类型可以进行转换 强制类型转换隐式类型转换 二、强制类型转...
    99+
    2022-11-13
  • 适合初学者的C语言常量类型的讲解
    目录常量的定义常量的分类字面常量const修饰的常变量#define 定义的标识符常量枚举常量生活中有一些是可变的量(比如你的年龄,身高,体重,对象) 还有一些不变的量(比如圆周率,...
    99+
    2022-11-13
  • 适合初学者的C语言数据类型的讲解
    之前说过写代码是为了解决生活中的问题,比如购物。 假设我们要买一本书,它的价格是10.5,是个小数,也可以是一个整数10,它的书名是钢铁是怎样炼成的,是一组字符串,就像svli@gi...
    99+
    2022-11-13
  • Python中import语句用法案例讲解
    目录一. 什么是模块(module)?二. 模块是如何组织的三. 如何导入模块?1. 命名空间3. from … import … 的运行机制五. 导入模...
    99+
    2022-12-29
    Python import语句用法 Python import用法 Python import语句
  • C语言实例讲解选择语句的使用
    目录一、if…else选择语句详解1. 图示if…else流程2. if…else代码流程3. if…else的三种情况3.1...
    99+
    2022-11-13
  • C语言详细讲解const的用法
    目录一、int const a / const int a二、const int(*p)/int const(*p)三、int*const p四、const用于函数的地址传递参数一、...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作