枚举数据类型

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 dayday来说,每次只能赋一个值。不要把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

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值