C语言枚举类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言枚举类型相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
void main()

enum aaanima,dlaji,sbud,woda;
for(a=nima;a<=wod;a++)
printf("%d",a);

这样也错啊,枚举类型到底有什么用啊,还要用switch输出,感觉还没有字符串好用啊

#include<stdio.h>
void main()
enum aaanima,dlaji,sbud,wod a;
for(a=nima;a<=wod;a=aaa(a+1))
printf("%d",a);


不能用a++的,++是针对整数,你的a是枚举,a=aaa(a+1),这样就可以,加1后强转成枚举

枚举类型定义:是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内.
针对值只能是几种的可用这个类型,你说的字符串是没有限制的。
在某些地方枚举会比较好用,比如表示星期
参考技术A 任意两个枚举成员不能具有相同的名称。每个枚举成员均具有相关联的常数值。此值的类型就是枚举的基础类型。每个枚举成员的常数值必须在该枚举的基础类型的范围之内。

默认nima=0 dlaji=1 sbud=2 wod=3 a是枚举变量
枚举常用于定义相关的符号常量,可以用枚举定义switch语句中使用的符号常量
输出时候,以及赋值的时候不能将数值赋给枚举变量,要赋于枚举成员!

C语言中的枚举类型

如果一个变量只有几种可能的值,则可以定义为 枚举类型 。所谓“枚举”是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。
声明枚举类型用 enum 开头。例如:

声明了一个枚举类型enum weekday,则可以用此类型来定义变量。例如:

也可以直接定义枚举变量,例如:

其中sun、mon、…、sat称为 枚举元素 枚举常量
说明:
1、在C编译中,对枚举元素按常量处理,故称为 枚举常量 。它们不是变量,不能进行赋值。例如 sun = 7; mon = 1; 是错误的。
2、枚举元素作为常量,是有值的。C语言编译按定义时的顺序使它们的值为0、1、2……也可以在定义时,指定枚举元素的值,例如:

3、枚举值可以用来作判断比较。例如:

4、一个证书不能直接赋值给一个枚举变量。例如 workday=1; 是错误的。它们属于不同的类型。应该先进性强制类型转换,然后才能赋值。例如:

相当于将序号为2的枚举元素赋值给workday,相当于

参考技术A

用法1

enum colour RED, GREEN, BLUE colour_t;

colour_t的值可以等于,RED, GREEN, BLUE中的任一个。

用法2

typedef enum colour RED, GREEN, BLUE colour_t;

colour_t col;

col的值可以等于,RED, GREEN, BLUE中的任一个。

注:如果RED, GREEN, BLUE没有赋值,默认RED=0,GREEN=1,BLUE=2;

以上是关于C语言枚举类型的主要内容,如果未能解决你的问题,请参考以下文章

C语言简单枚举类型

C语言中关于枚举类型

C语言枚举类型是啥意思?

c语言,有没有办法遍历枚举类型

C语言怎样取得枚举型的名字 而不是值

求教C语言枚举类型的问题