2.1.1 基本数据类型(2)
5. 枚举类型(enum)
枚举类型是指把可能的值一一列举出来,变量的值只可以在列举出来的值的范围内取。
在声明枚举类型时,需要把常量的值一一列举出来,形式如下所示:
- enum 枚举类型名{常量值1,常量值2,…,常量值n};
例如,一个铅笔盒中有一支笔,在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么就可以定义一个枚举类型来表示。
- enum box{pencil,pen}; //这里定义了一个枚举类型的变量叫box,这个枚举变量内含有两个元素也
- 称枚举元素,这里是pencil和pen,分别表示铅笔和钢笔。
这里要说一下,如果想定义两个具有同样特性枚举类型的变量,那么可以用如下的两种方式进行定义。
- enum box{pencil,pen};
- enum box box2; //或者简写成box box2;
还有一种就是在声明的同时定义。
- enum{pencil,pen}box,box2; //在声明的同时进行定义!
对枚举变量中的枚举元素系统是按照常量来处理的,故叫枚举常量,其不能进行普通的算术赋值,(pencil=1;)这样的写法是错误的,但是可以在声明的时候进行赋值操作。
- enum box{pencil=1,pen=2};
这里要特别注意的一点是,如果不进行元素赋值操作,那么元素将会被系统自动从0开始自动递增的进行赋值操作,说到自动赋值,如果只定义了第一个,那么系统将对下一个元素进行前一个元素的值加1操作,如下所示:
- enum box{pencil=3,pen};//这里pen就是4,系统将自动进行pen=4的定义赋值操作!
下面通过两个完整的例子进行学习。
例2-1 枚举程序举例。
- #include<iostream.h>
- void main(void)
- {
- enum egg{a,b,c};
- enum egg test;//在这里,可以简写成egg test;
- test=c; /*对枚举变量test进行赋予元素操作*/
- if(test==c)
- {
- cout<<"枚举变量判断:test枚举对应的枚举元素是c"<<endl;
- }
- if(test==2)
- {
- cout<<"枚举变量判断:test枚举元素的值是2"<<endl;
- }
- cout<<a<<"|"<<b<<"|"<<test<<endl;
- test=(enum egg)0; //强制类型转换
- cout<<"枚举变量test值改变为:"<<test<<endl;
- }