C学习目标最简单实用的枚举enum

在前面学习目标中我们已经看到了很多简单数据类型的用法,本文介绍的枚举(enumeration)是一种稍微复杂一点的数据类型。它可以理解为是一系列整数常量的集合。

(1)语法定义

枚举的语法定义可简化为:

enumEnumName

{

E_Member1,

E_Member2

};

EnumName是一个具体的枚举类型名称,可以理解为某个集合的名称。它用来在代码里声明或定义变量。比如如下定义一个EnumName类型的变量eMyMember:

EnumNameeMyMember=E_Member1;

该变量的初始值赋为E_Member1。[灵光一闪]没错,你已经发现了,枚举变量的值只能在枚举成员里选择。针对以上示例的枚举EnumName定义,eMyMember的值要么为E_Member1,要么为E_Member2。

枚举成员(E_Member1、E_Member2)可以定义为一个或无数个。编译器实际上将其当整型值看待。

(2)实用示例

写段代码实际使用下:

运行一下(Ctrl+F5)看看输出:

可以很明显看出,编译器将枚举成员转换成了顺序的整数。所以C++语法上可将整数强制转换赋值给枚举变量,例如:

EnumNameeMyMember=(EnumName)1;

还可以在定义时具体指定枚举成员对应的整数值,如

enumEnumName

{

E_Member1=3,

E_Member2=5

};

按如上定义将刚才的代码修改后再运行下看看输出:

枚举是一种很实用的数据类型,在VS的库文件(如afxwin.h)里很容易找到:

还有一种特殊用法是将枚举成员直接当作整型常量使用,如库文件“xutility”里的如下代码:

C++PrimerPlus第6版中文版(异步图书出品)京东月销量好评率98%无理由退换京东配送官方店¥购买

(3)实用说明

不要将整数强制转换成枚举变量,容易导致枚举变量值不在枚举定义的成员范围内。

不建议将枚举成员直接当作整型常量使用,该用法仅在编译器不支持整型常量定义时使用。

学习目标“最简单实用的变量介绍”已完成[再见]




转载请注明:http://www.aierlanlan.com/cyrz/3639.html