0
点赞
收藏
分享

微信扫一扫

C语言之枚举类型


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

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

#define
#define
#define
#define
#define
#define
#define

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

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

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

语法定义格式

语法定义格式为:

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

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

定义枚举类型变量

具体有四种方式 :

  • 1、定义枚举类型的同时定义枚举变量:

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

  • 2、先定义枚举类型,再定义枚举变量

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

  • 3、先定义枚举,再定义枚举别名,再用别名定义变量:

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

  • 4、省略枚举名称,直接定义枚举变量

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

完整例子

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;
}

运行结果:

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

谢谢阅读。


举报

相关推荐

0 条评论