枚举类型是C语言中一种基本数据类型,可以让程序变得更清晰简洁。在这个知识点中将引入枚举变量的概念。
一、概述
C语言的枚举类型在定义的时候和别的类型有所不同。在C语言中无论是int型还是char或者是float都不能省略变量名,但是枚举类型的枚举名称可以省略。同时在C语言中枚举类型是被定义为了int类型进行处理。所以是不可能直接读取里面的全部内容的,如果想要遍历枚举内容的话需要通过循环语句才能实现。
二、代码演示
问:腊么神马是枚举变量呢?ta又有什么用处呢?
答:枚举变量在这里的用处是用处读取(也可以理解为存放)枚举中的元素的值如果你还是理解不了看一个程序你就懂了。
#include <stdio.h>
enum abc{a=1,b,c,d,e,f,g}def;
int main()
{
def=b;
printf("%d",def);
return 0;
}
运行结果
那么在这个程序里abc就是枚举名,def就是枚举变量。根据前面的介绍我们可以知道枚举名是可以省略的,枚举变量是可以后定义的,但是是万万不能又省略枚举名称又后定义枚举变量哦。
枚举变量后定义类型演示
#include <stdio.h>
enum abc{a=1,b,c,d,e,f,g};//这里没有枚举变量
int main()
{
enum abc def;//这这里定义了枚举abc的枚举变量为def
def=b;
printf("%d",def);
return 0;
}
运行结果
枚举遍历演示
#include <stdio.h>
enum abc{a=1,b,c,d,e,f,g}def;
int main()
{
for(def=a;def<=g;def++)
{
printf("%d\n",def);
}
return 0;
}
运行结果
虽然枚举类型可以通过循环语句遍历输出全部的内容,但是如果你的枚举类型不连续的话是不能遍历输出的哦。
枚举的其他应用:
1.switch和枚举的爱情故事
#include <stdio.h>
int main()
{
int i;
printf("Please input a number\n");
scanf("%d",&i);
enum abc{a=1,b,c,d,e,f,g}def;
def=i;
switch(def)
{
case a:
printf("a");
break;
case b:
printf("b");
break;
case c:
printf("c");
break;
case d:
printf("d");
break;
case e:
printf("e");
break;
case f:
printf("f");
break;
case g:
printf("g");
break;
default:
printf("你的输入有误");
break;
}
return 0;
}
运行结果
2.将整数转换为枚举
#include <stdio.h>
int main()
{
int i=10086;
enum abc{a,b,c,d,e,f,g}def;
def = (enum abc) i;
printf("%d",def);
return 0;
}
运行结果
参考文章
1.菜鸟教程:C enum(枚举)