C语言学习--枚举

提示:枚举类型提供了一种便捷的方式来描述一组相关的常量,使得代码更具可读性和可维护性。

目录

前言

8.1 看一个需要

8.1.1传统的方法

8.2 基本介绍

8.3 快速入门

8.4 枚举的遍历

8.5 switch 中使用枚举

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

总结


前言

在编程中,定义和使用枚举类型是组织和管理有限数据集的一种有效方式。枚举类型提供了一种便捷的方式来描述一组相关的常量,使得代码更具可读性和可维护性。传统的使用宏定义来表示这些常量的方法虽然有效,但随着常量数量的增加,管理和维护会变得繁琐。枚举提供了一种更结构化的方式来定义这些常量,同时还能够确保它们的值在使用时更具语义性和一致性。本文将介绍枚举的基本概念、使用方法及其在 C 语言中的应用。


8.1 看一个需要

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

8.1.1传统的方法

使用#define 来完成

#define MON 1

#define TUE 2

#define WED 3

#define THU 4

#define FRI 5

#define SAT 6

#define SUN 7

分析:这个看起来代码量较多,并且不好管理 =》 枚举

8.2 基本介绍

1) 枚举是 C 语言中的一种构造数据类型,它可以让数据更简洁,更易读, 对于只有几个有限的特定数据,可以使用枚举。

2) 枚举对应英文(enumeration, 简写 enum)

3) 枚举是一组常量的集合,包含一组有限的特定的数据

4) 枚举语法定义格式为

enum 枚举名 {枚举元素 1,枚举元素 2,……};

8.3 快速入门

#include <stdio.h>

void main() {

enum DAY

{

MON=1, TUE=2, WED=3, THU=4, FRI=5, SAT=6, SUN=7

}; // 这里 DAY 就是枚举类型, 包含了 7 个枚举元素

enum DAY day; // enum DAY 是枚举类型, day 就是枚举变量

day = WED; //给枚举变量 day 赋值,值就是某个枚举元素

printf("%d",day);// 3 , 每个枚举元素对应一个值

getchar();

}

8.4 枚举的遍历

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

enum DAY {

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

} day; // 表示 定义了一个枚举类型 enum Day ,同时定义了一个变量 day(类型是 enum DAY)

int main() {

// 遍历枚举元素

//day++ 会给出警告,但是可以运行

for (day = MON; day <= SUN; day++) { // 要求枚举元素是连续赋值

printf("枚举元素:%d \n", day);

}

getchar();

return 0;

}

8.5 switch 中使用枚举

C 语言中,switch 中可以使用枚举类型,案例如下:

int main() {

enum SEASONS {SPRING=1, SUMMER, AUTUMN, WINTER}; //定义枚举类型 enum SEASONS

enum SEASONS season;//定义了一个枚举类型变量 season(类型 enum SEASONS )

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();

return 0;

}

8.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 DAY {

MON=1, TUE, WED, THU, FRI, SAT, SUN

};

enum DAY day;

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

enum DAY {

MON=1, TUE, WED, THU, FRI, SAT, SUN

} day;

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

enum {

MON=1, TUE, WED, THU, FRI, SAT, SUN

} day; // 这样使用枚举,该枚举类型只能使用一次。

6) 可以将整数转换为对应的枚举值 [案例]

不能直接将一个整数,赋给枚举变量,但是可以将整数,转成枚举类型,再赋给枚举变量.

int main() {

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

enum SEASONS season;

int n = 4;

season = (enum SEASONS) n;

printf("season=:%d",season);

getchar();

return 0;

}


总结

枚举类型在 C 语言中提供了一种简洁且易于理解的方式来处理一组有限的常量。通过枚举,我们能够为这些常量赋予有意义的名字,提高代码的可读性和可维护性。枚举不仅允许在代码中定义明确的常量值,还支持在 switch 语句中进行条件分支,使得程序的逻辑更加清晰。然而,使用枚举时需注意其默认值的设置和变量的定义方式,以避免潜在的问题。枚举在许多情况下能够简化代码的编写和理解,是编程中不可或缺的一个工具。

附录

参考:【尚硅谷C语言零基础快速入门教程-哔哩哔哩】 https://b23.tv/vS3vTDp

 

  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值