枚举类型的使用

原文地址为: 枚举类型的使用

枚举类型对学过编程的人而言可谓是既熟悉又陌生,各种语言的教材上都有对枚举类型的介绍,但是真正用过的人可能不多。

我也是因为工作之后才接触到枚举类型的使用,这时候才知道自己一直对枚举类型都是一知半解,今天通过查阅资料加深了对枚举类型的了解,现将其记录如下。

1.什么是枚举类型

我的理解是枚举类型就是对整型数据起一个别名,这个别名可以是各种字符,甚至汉字,但是不能是整数。一个大家都熟悉的例子:

enum COLOR{RED,BLUE,BLACK};

这里就是把整型0取别名RED,1取别名BLUE,2取别名BLACK;

也许大家注意到了,为什么三个成员分别对应0,1,2呢?是巧合吗?

不是巧合,枚举类型默认从整数0开始,分别与花括号中的各成员对应,而且整数值依次加1。当然也可以指定各别名对应的整型值,如下:

enum COLOR{
RED = 1,
BLUE,
BLACK,
WHITE = 5,
GREEN
};

此时,RED为1,BLUE为2,BLACK为3,WHITE为5,GREEN为6。需注意:

enum num{0,1,2,3,4};

这种写法是错误的,因为枚举花括号中不能是数字。


2.为什么要使用枚举类型

使用枚举类型的目的是限制用户的输入为有限范围内的整数值,例如上面声明了COLOR的枚举,那么,当用户定义一个enum COLOR类型的变量时,该变量的值只能是花括号中的某一种颜色,给它赋值为其他都是错误的。这种特性很适合处理类似于状态机中的状态转换的情形,将所有的状态定义为一个枚举类型中的成员,并为其取合适的名字,会使得程序简单易懂,不易出错。


3.枚举类型的用法

我认为想要正确的使用枚举类型,必须要明确一点:枚举类型也是一种数据类型,也可以作为函数的返回值返回。举例说明如下:

enum weekday{mon,tue,wed,thu,fri,sat,sun};

enum weekday Today = mon;

同样可以使用typedef定义enum weekday类型为Weekday,然后用Weekday声明变量,如下:

#include <stdio.h>
#include <stdlib.h>

typedef enum weekday{
mon,
tue,
wen,
tur,
fri,
sat,
sun
}Weekday;

Weekday test_enum()
{
Weekday Today = mon;

return Today;
}

int main()
{
printf("%d\n",test_enum());

return 0;
}

输出结果为0,




转载请注明本文地址: 枚举类型的使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值