首页 > 其他分享 >11. 枚举

11. 枚举

时间:2023-03-05 13:56:00浏览次数:49  
标签:11 变量 enum 枚举 printf 变量名 标识符

一、什么是枚举变量

  枚举时 C语言 中的一种构造数据类型,它可以让数据更简洁,更易读,对于只有几个有限的特定类型,可以使用枚举。枚举是一组常量的集合,包含一组有限的特定的数据。

二、枚举类型的定义

  在 C语言 中,我们可以使用 enum 关键字声明枚举类型变量。一个枚举变量包含一组相关的标识符,其中每个标识符都对应一个整数值,称为 枚举常量。它的定义格式如下:

enum 枚举类型名
{
    标识符1[=值1],
    标识符2[=值2],
    标识符3[=值3],
    ...
    标识符n[=值n]
};

  在定义枚举类型的变量时,可以为某个特定的标识符指定对应的整数值,紧随其后的标识符对应的值依次加 1。如果没有为枚举变量显示的指定整数值,默认从 0 开始,依次递增。如果为枚举变量中间的某个标识符指定对应的值,那么它之前的标识符对应的整数值从 0 开始,它后面的标识符对应的整数值从该值开始依次加 1。

一个枚举变量包含一组相关的标识符,其中每个标识符都对应一个整数值,称为枚举常量;

每个标识符都必须是唯一的,而且不能采用关键字或当前作用域内其它相同的标识符;

三、枚举变量的定义

【1】、声明枚举类型,再定义变量

enum 枚举类型名 变量名;

【2】、在声明枚举类型时定义变量

enum 枚举类型名
{
    标识符1[=值1],
    标识符2[=值2],
    标识符3[=值3],
    ...
    标识符n[=值n]
}变量名1,变量名2,...,变量名n;

定义的变量不是只能有一个,可以定义多个变量;

【3】、直接定义结构体类型变量

 如果我们只需要确定个数的枚举变量,后面不需要再使用枚举类型定义变量,我们可以在定义时不给出枚举类型名。

enum
{
    标识符1[=值1],
    标识符2[=值2],
    标识符3[=值3],
    ...
    标识符n[=值n]
}变量名1,变量名2,...,变量名n;

四、枚举变量的赋值

【1】、先声明变量再对变量赋值

enum 枚举类型名 变量名;
变量名 = 枚举常量;

【2】、声明变量的同时赋初值

enum 枚举类型名 变量名 = 枚举常量;

【3】、定义类型的同时声明变量,然后对变量赋值

enum 枚举类型名
{
    标识符1[=值1],
    标识符2[=值2],
    标识符3[=值3],
    ...
    标识符n[=值n]
}变量名;

变量名 = 枚举常量;

【4】、类型定义,变量声明,赋初值同时进行

enum 枚举类型名
{
    标识符1[=值1],
    标识符2[=值2],
    标识符3[=值3],
    ...
    标识符n[=值n]
}变量名 = 枚举常量;

枚举变量的取值范围是固定的,只可以再枚举常量中选择;

对枚举型的变量赋整数值时,需要进行类型转换 ,即 变量名 = (enum 枚举类型名)整数值

五、枚举的使用

  枚举类型只能在内部使用,如果要输入枚举变量中的某个枚举值,只能输入它对应的整数值,不能输入它的标识符。因为枚举类型是整数类型,所以可以在表达式中使用整数变量的方式来使用 enum 变量,它们用在 case 中很方便。

#include <stdio.h>

enum WEEK
{
    MONDAY = 1,
    THESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY,
    SATURDAY,
    SUNDAY
};

int main()
{
    int day = 0;

    printf("请输入一个星期:");
    scanf("%d",&day);

    switch(day)
    {
        case MONDAY:
            printf("你输入的是星期一\n");
            printf("%d\n",MONDAY);
            break;
        case THESDAY:
            printf("你输入的是星期二\n");
            printf("%d\n",THESDAY);
            break;
        case WEDNESDAY:
            printf("你输入的是星期三\n");
            printf("%d\n",WEDNESDAY);
            break;
        case THURSDAY:
            printf("你输入的是星期四\n");
            printf("%d\n",THURSDAY);
            break;
        case FRIDAY:
            printf("你输入的是星期五\n");
            printf("%d\n",FRIDAY);
            break;
        case SATURDAY:
            printf("你输入的是星期六\n");
            printf("%d\n",SATURDAY);
            break;
        case SUNDAY:
            printf("你输入的是星期七\n");
            printf("%d\n",SUNDAY);
            break;
        default:
            printf("你输入有误\n");
            break;
    }

    return 0;
}

标签:11,变量,enum,枚举,printf,变量名,标识符
From: https://www.cnblogs.com/kurome/p/17180361.html

相关文章