第7章 枚举

以下内容是学习尚硅谷

7.1 看一个需要

举个例子,比如:一星期有7天,请定义数据表示星期一到星期天

7.1.1 传统的方法

在这里插入图片描述

7.2 基本介绍

1)枚举是C语言中的一种构造数据类型,它可以让数据更加简洁,更易读,对于只有几个有限的特定数据,可以使用枚举
2)枚举对应英文(enumeration,简写enum)
3)枚举是一组常量的集合,包含一组有限的特定的数据
4)枚举语法定义格式为

enum 枚举名 {枚举元素1,枚举元素2,.....}

7.3 快速入门

#include <stdio.h>
#include <stdbool.h>

void main(){
    enum DAY{
        NON=1,TUE=2,WED=3,THU=4,FRI=5,SAT=6,SUN=7
    };

    enum DAY day;
    day=WED;
    printf("%d",day);
    getchar();
}

7.4 枚举的遍历

C语言中,枚举类型是被当做int或者unsigned int类型来处理的,枚举类型必须是连续是可以实现有条件的遍历。以下实例使用for来遍历枚举的元素

#include <stdio.h>
#include <stdbool.h>

enum DAY{
    MON=1,TUE,WED,THU,FRI,SAT,SUN//如果没有给赋值,就会按照顺序赋值
} day;

void main(){
    //遍历枚举元素
    //day++会给出警告,但是可以运行
    for (day=MON; day<=SUN; day++) {//要求枚举元素是连续值
        printf("枚举元素:%d \n",day);
    }   
    getchar();
}

7.5 switch使用枚举

案例如下:

#include <stdio.h>
#include <stdbool.h>

enum SEASONS{
    SPRING=1,SUMMER,AUTUMN,WINTER
} season;

void main(){
    printf("请输入你喜欢的季节:(1.spring,2.summer,3.autumn,4.winter):");
    scanf("%d",&season);
    switch (season) {
        case SPRING:
            printf("春天");
            break;

        case SUMMER:
            printf("夏天");
            break;

        case AUTUMN:
            printf("秋天");
            break;

        case WINTER:
            printf("冬天");
            break;

        default:
            printf("没有");        
    }  
    getchar();
    getchar();
}

7.6 枚举类型使用注意事项和细节

1)第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。例如:第一个枚举成员的值定义为1,第二个就是为2,以此类推。

2)在定义枚举类型时改变枚举元素的值

enum DAY{
    MON,TUE,WED,THU=9,FRI,SAT,SUN//如果没有给赋值,就会按照顺序赋值
}day;//表示定义了一个枚举类型enum Day,同时定义了一个变量day(类型是enum DAY)
//说明 FRI,SAT,SUN 就是10,11,12

3)枚举变量的定义的形式1–先定义枚举类型,在定义枚举变量

enum SEASONS{
    SPRING=1,SUMMER,AUTUMN,WINTER
};

enum SEASONS season;

4)枚举变量的定义的形式2-定义枚举类型的同时定义枚举变量

enum SEASONS{
    SPRING=1,SUMMER,AUTUMN,WINTER
}season;

5)枚举变量的定义的形式3-省略枚举名称,直接定义枚举变量

enum{
    SPRING=1,SUMMER,AUTUMN,WINTER
}season;//这样使用枚举,该枚举类型只能使用一次

6)可以将整数转换为对应的枚举值
不能直接将一个整数,赋给枚举变量,但是可以将整数,转成枚举类型,再赋给枚举变量.

#include <stdio.h>
#include <stdbool.h>

void main(){
    enum SEASONS{
        SPRING=1,SUMMER,AUTUMN,WINTER
    }season;

    int n=4;
    season=(enum SEASONS)n;
    printf("season=:%d",season);
    getchar();
}
  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李贺梖梖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值