【笔记】C语言的枚举

前言

C语言的枚举学习笔记

声明和定义枚举类型

  • 定义枚举类型实际上就是一次性定义很多整型的常量
  • 默认枚举值是从0开始的,后续的枚举值根据前一个枚举值+1,也可以强制改变枚举值的数据

先声明枚举类型,再定义枚举变量

sex:枚举类型名
MALE, FEMALE:枚举值(多个枚举值用,隔开)
s:枚举类型变量名

1
2
3
4
5
6
enum sex
{
MALE, FEMALE
};

enum sex s = MALE;
  • 此时MALE表示0,FEMALE表示1

改变枚举值的数据

1
2
3
4
5
6
enum sex
{
MALE=1, FEMALE
};

enum sex s = MALE;
  • 此时MALE表示1,FEMALE表示2

声明枚举类型同时定义枚举变量

1
2
3
4
enum sex
{
MALE, FEMALE
} s;

声明枚举类型同时定义枚举变量(省略枚举名)

1
2
3
4
enum
{
MALE, FEMALE
} s;

枚举类型数据的遍历

  • 枚举类型是被当做 int 或者 unsigned int 类型来处理的,所以按照 C 语言规范是没有办法遍历枚举类型的
  • 但是如果枚举是连续的,可以使用for循环来遍历,不连续则无法遍历
1
2
3
4
5
6
7
8
enum
{
MALE, FEMALE
} s;

for (s = MALE; s <= FEMALE; s++) {
...
}

int类型转换为枚举类型

  • 强制类型转换
1
2
3
4
5
6
7
8
9
enum sex
{
MALE, FEMALE
};

int male = 0;

enum sex s;
s = (enum SEX) male;

完成

参考文献

菜鸟笔记