C语言中的枚举类型

如题所述

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

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

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

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

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

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

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-11-30

用法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;

相似回答