1:定义
如果一个变量只有几种可能的值,则可以定义为枚举类型(enumeration),所谓枚举就是把可能的值一一列举出来。
声明枚举类型用enum开头 例如:
enum Weekday{sun, mon, tue, wed, thu, fri, sat};
上面声明了一个枚举类型enum Weekday,使用这个类型定义变量 例如
enum Weekday weekday, day;
2: 使用
对于枚举元素列表只能在声明的时候进行赋值,后面使用的时候不能在进行赋值。
可以:
enum Weekday{sun=1, mon, tue, wed, thu, fri, sat};
不能:
sun = 1;
只需要对首元素赋值,后面元素会自动加1
/*************************************************************************
> File Name: test.c
> Author: kayshi
> Mail: kayshi2019@qq.com
> Created Time: Sat 26 Dec 2020 02:02:04 PM CST
************************************************************************/
#include <stdio.h>
enum Weekday{sun=1, mon, tue, wed, thu, fri, sat};
int main()
{
enum Weekday day;
day = sun;
printf("%d\n", day);
day = mon;
printf("%d\n", day);
day = tue;
printf("%d\n", day);
day = wed;
printf("%d\n", day);
day = thu;
printf("%d\n", day);
day = fri;
printf("%d\n", day);
day = sat;
printf("%d\n", day);
}
kayshi@ubuntu:~/code/enum$ ./a.out
1
2
3
4
5
6
7
也可以在定义的时候为每个元素单独进行赋值
如果所有的元素都不赋值,默认从0开始赋值
3:枚举数组
需要注意的是对于定义的枚举变量enum Weekday day的day来说,每次只能赋一个值。不要把day当成数组一样使用像这样 day[1]。
如果要使用数组要定义枚举变量数组
enum Weekday day[5];
可以在定义的时候对每个成员进行初始化,也可以在后面进行单独赋值。
/*************************************************************************
> File Name: test.c
> Author: kayshi
> Mail: kayshi2019@qq.com
> Created Time: Sat 26 Dec 2020 02:02:04 PM CST
************************************************************************/
#include <stdio.h>
enum Weekday{sun=1, mon, tue, wed, thu, fri, sat};
int main()
{
int i;
enum Weekday day[5] = {sun, sun, mon, mon, wed};
for(i = 0; i < 5; i++)
{
printf("%d\n", day[i]);
}
}
kayshi@ubuntu:~/code/enum$ ./a.out
1
1
2
2
4