首页 > 编程笔记 > C语言笔记 阅读:8

C语言enum枚举类型的用法(附带实例)

在 C 语言程序中,如果一个变量只有几种可能的取值,可以将这个变量定义为枚举类型。

对于枚举类型的变量,变量所有可能的值都会一一列举出来,变量的值只限于列举出来的这些值。

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
你喜欢的颜色是红色

相关文章