C语言enum枚举类型的用法(附带实例)
在 C 语言程序中,如果一个变量只有几种可能的取值,可以将这个变量定义为枚举类型。
对于枚举类型的变量,变量所有可能的值都会一一列举出来,变量的值只限于列举出来的这些值。
【实例】一年有十二个月,一年有四季,一个星期有七天。若不用枚举的方式,则需要使用 #define 来为每个整数定义别名,代码如下:
1) 先定义枚举类型,再定义枚举变量。例如:
2) 定义枚举类型的同时定义枚举变量。例如:
3) 省略枚举名称,直接定义枚举变量。例如:
下面通过一个实例熟悉枚举的具体用法。
对于枚举类型的变量,变量所有可能的值都会一一列举出来,变量的值只限于列举出来的这些值。
C语言枚举类型的创建
声明枚举类型的一般形式为:enum 枚举名 {枚举元素列表};例如:
enum day {mon,tue,wed,thu,fri,sat,sun};在编程中,有些数据取值是有限的,为了方便,通常会为每个值取个名字,以便在后续代码中使用,下面通过一个实例进行说明。
【实例】一年有十二个月,一年有四季,一个星期有七天。若不用枚举的方式,则需要使用 #define 来为每个整数定义别名,代码如下:
#define mon 1 #define tue 2 #define wed 3 #define thu 4 #define fri 5 #define sat 6 #define sun 7如果使用枚举的方式,则代码会简洁很多:
enum day {mon = 1,tue,wed,thu,fri,sat,sun};在 C语言中,每一个枚举元素都代表一个整数,枚举元素默认从整数 0 开始,后续枚举元素的值在前一个枚举元素的值上加 1。这里指定了枚举元素 mon 的值为 1,后续枚举元素的值依次加 1,则枚举元素 sun 的值为 7。
enum season {spring,summer,autumn = 5,winter};在 season 这个枚举类型中指定枚举元素 autumn 的值为 5,则 spring 的值为 0,summer 的值为 1,winter 的值为 6。
C语言枚举变量的定义和使用
定义枚举变量有以下 3 种方法:1) 先定义枚举类型,再定义枚举变量。例如:
enum day {mon = 1,tue,wed,thu,fri,sat,sun}; enum day da;
2) 定义枚举类型的同时定义枚举变量。例如:
enum day {mon = 1,tue,wed,thu,fri,sat,sun} da;
3) 省略枚举名称,直接定义枚举变量。例如:
enum {mon = 1,tue,wed,thu,fri,sat,sun} da;
下面通过一个实例熟悉枚举的具体用法。
#include <stdio.h> int main() { enum color { red = 1,green,blue }; enum color favorite_color; printf("请输入你喜欢的颜色: (1. red,2. green,3. blue): "); scanf("%u",&favorite_color); switch (favorite_color) { case red: printf("你喜欢的颜色是红色"); break; case green: printf("你喜欢的颜色是绿色"); break; case blue: printf("你喜欢的颜色是蓝色"); break; default: printf("你没有选择你喜欢的颜色"); } return 0; }程序中定义一个颜色的枚举数据类型,然后声明一个 favorite_color 变量,并输入这个变量的值,最后根据这个变量的值输出具体的颜色。编译运行程序,结果如下:
请输入你喜欢的颜色: (1. red, 2. green, 3. blue): 1
你喜欢的颜色是红色