C语言详细笔记--构造数据类型(枚举类型)

目录

一、枚举类型声明

二、枚举变量的定义

三、枚举变量的引用

1.枚举变量赋值。

2.枚举变量的输入和输出


一、枚举类型声明

在枚举类型的定义中将变量的所有可能取值一一列举出来,被定义为枚举类型的变量其取值不能超过定义的范围。

enum 枚举名{

枚举值1[=整形常数1],

枚举值2[=整形常数2],

枚举值3[=整形常数3]

};

**说明:**1.enum是 C语言的关键字,是枚举类型的引导字,用于声明枚举类型。

2.枚举名和枚举值均为用户自定义的标识符。枚举值又称为枚举元素、枚举常量,系统将枚举值作为整形常量来处理。

3.方括号内的"=整形常量"可以省略,如果省略系统按顺序给每个枚举元素的一个对应的整数值,整数值从0开始,后续元素加1;也可以在声明时指定枚举元素对应的整数值。

4.每个枚举元素之间用逗号隔开不是分号。

二、枚举变量的定义

与结构体共用体一样,枚举变量的定义也有三种形式。

1.先声明枚举类型,再定义枚举变量。

cs 复制代码
enum weekdaytype{
    sun,mon,tue,wed,thu,fri,sat};
enum weekdaytype day,workday;

2.声明枚举类型的同时,定义枚举变量

cs 复制代码
enum weekdaytype{
    sun,mon,tue,wed,thu,fri,sat}day,workday;

3.不指定枚举名而直接定义枚举变量。

cs 复制代码
enum {
    sun,mon,tue,wed,thu,fri,sat}day,workday;

**说明:**变量day和workday被定义为枚举类型,他的值只能是sun到sat其中之一。

三、枚举变量的引用

1.枚举变量赋值。

在使用枚举变量时只能取其相对应枚举类型所列的枚举常量。

cs 复制代码
weekday=mon;//正确
weekday=monday;//monday不是所列的枚举常量

不能把枚举常量对应的序号直接赋给枚举变量。

cs 复制代码
weekday=2;//这样赋值错误

可以用强制类型进行转换,例如:

cs 复制代码
weekday=(enum weekdaytype)(2);//相当于weekday=tue

2.枚举变量的输入和输出

枚举变量的值不能直接输入或输出,只能间接的实现输入和输出的操作。

例如:

cs 复制代码
int d;
scanf("%d",&d);
switch(d){
    case0:day=sun;break;
    case1:day=mon;break;
    case2:day=tue;break;
    case3:day=wed;break;
}
//如果需要输出枚举类型变量的值可以通过以下形式实现输出操作
switch(day){
    case sun:printf("sun");break;
    case mon:printf("mon");break;
    case tue:printf("tue");break;
    case wed:printf("wed");break;
}

本期博客到这里就结束喽~下一期将更新动态内存分配相关内容。如果对你有帮助的话点赞收藏关注一下吧!!

相关推荐
潇湘夜雨6978 分钟前
2023ICPC合肥题解
算法
martian6659 分钟前
信创时代技术栈选择与前景分析:国产替代背景下的战略路径与实践指南
开发语言·科技·系统安全·创业创新
崔高杰10 分钟前
On the Biology of a Large Language Model——Claude团队的模型理解文章【论文阅读笔记】其二——数学计算部分
论文阅读·人工智能·笔记·语言模型·nlp
o0向阳而生0o12 分钟前
27、Session有什么重⼤BUG?微软提出了什么⽅法加以解决?
c#·.net
Small踢倒coffee_氕氘氚12 分钟前
iPhone闹钟无法识别调休致用户迟到,苹果客服称会记录反馈
笔记·算法·灌灌灌灌
制冷男孩16 分钟前
机器学习算法-支持向量机SVM
人工智能·算法·机器学习·支持向量机
{⌐■_■}17 分钟前
【计网】认识跨域,及其在go中通过注册CORS中间件解决跨域方案,go-zero、gin
java·linux·开发语言·c++·中间件·golang·gin
ErizJ24 分钟前
Golang|外观模式和具体逻辑
开发语言·golang·外观模式
ErizJ26 分钟前
Golang | 集合求交
开发语言·后端·golang·集合·交集
代码程序猿RIP31 分钟前
【C语言干货】回调函数
c语言·开发语言·数据结构·c++·算法