C语言之枚举类型

举报
yd_221104950 发表于 2020/12/03 01:07:19 2020/12/03
【摘要】 如果一个变量有几种可能的值,则可以定义为枚举类型,就是把各种存在的值一一的列举出来。枚举在C/C++/c#中,是一个被命名的整型常数的集合。它可以让数据更简洁,更易读。 接下来我们举个例子,比如:一星期有 7 天,如果不用枚举,我们需要使用 #define 来为每个整数定义一个别名: #define MON 1 #define TUE 2 #define WED...

如果一个变量有几种可能的值,则可以定义为枚举类型,就是把各种存在的值一一的列举出来。枚举在C/C++/c#中,是一个被命名的整型常数的集合。它可以让数据更简洁,更易读。

接下来我们举个例子,比如:一星期有 7 天,如果不用枚举,我们需要使用 #define 来为每个整数定义一个别名:

#define MON  1
#define TUE  2
#define WED  3
#define THU  4
#define FRI  5
#define SAT  6
#define SUN  7

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

这个看起来代码量就比较多,接下来我们看看使用枚举的方式:

enum DAY{ MON=1, TUE, WED, THU, FRI, SAT, SUN };

  
 
  • 1
  • 2
  • 3

这样看起来是不是更简洁了。使用关键字enum定义枚举。

语法定义格式

语法定义格式为:

enum 枚举名{
	标识符[=整型常数],
	标识符[=整型常数]...
	标识符[=整型常数]
} 枚举变量;

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

如果枚举没有初始化,即省掉"=整型常数"时, 则从第一个标识符开始,顺次赋给标识符0, 1, 2, …。但当枚举中的某个成员赋值后,其后的成员按依次加1的规则确定其值。

定义枚举类型变量

具体有四种方式 :

  • 1、定义枚举类型的同时定义枚举变量:
enum DAY{ MON=1,TUE,WED,THU,FRI,SAT,SUN
}day;


  
 
  • 1
  • 2
  • 3
  • 4
  • 2、先定义枚举类型,再定义枚举变量
enum DAY{ MON=1,TUE,WED,THU,FRI,SAT,SUN
};
enum DAY day;

  
 
  • 1
  • 2
  • 3
  • 4
  • 3、先定义枚举,再定义枚举别名,再用别名定义变量:
typedef enum{ MON=1,TUE,WED,THU,FRI,SAT,SUN
}DAY;
DAY day = TUE;

  
 
  • 1
  • 2
  • 3
  • 4
  • 4、省略枚举名称,直接定义枚举变量
enum{ MON=1,TUE,WED,THU,FRI,SAT,SUN
}day;


  
 
  • 1
  • 2
  • 3
  • 4

完整例子

enum DAY{ MON=1,TUE,WED,THU,FRI,SAT,SUN
}day;
int main(int argc,char* argv){ for(day = MON;day <= SUN;day++){ printf("枚举元素:%d\n",day); } return 0;
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

运行结果:

~/Desktop/c$ gcc main.c -o main
~/Desktop/c$ ./main
枚举元素:1
枚举元素:2
枚举元素:3
枚举元素:4
枚举元素:5
枚举元素:6
枚举元素:7


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

谢谢阅读。

文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_40763897/article/details/103641226

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。