鉴于本人学习过c语言基础语法以及visual c++面向对象,这一系列的c++学习笔记将针对本人之前学习的漏洞,并将针对一些重难点进行深度理解。

一、枚举类型

1.枚举类型介绍

        枚举类型是由用户定义的若干枚举常量的集合。

        其定义格式如下:

enum 类型名 {枚举常量表};

枚举常量表:由枚举常量构成,是以标识符形式表示的整型量,表示其取值,并以逗号隔开。枚举常量只能是标识符形式,不能是整型、字符型等常量。 

      eg:

enum color {RED, BLUE, WHITE, BLACK}; // 定义枚举类型color

枚举常量代表这个枚举类型常量可能取到的值,默认情况下系统会自动从0开始赋值并依次加一。可以在定义枚举类型时为部分或全部枚举常量指定整数值,在指定值之前的枚举常量仍按默认方式取值,而指定值之后的枚举常量按依次加1的原则取值。 各枚举常量的值可以重复。

如:

enum week {Sun=7, Mon=1, Tue, Wed, Thu, Fri, Sat};
//枚举常量Sun,Mon,Tue,Wed,Thu,Fri,Sat的值分别为7、1、2、3、4、5、6。

 2.枚举变量的使用

变量定义格式如下:

color_set1 color1, color2; 
enum {Sun,Mon,Tue,Wed,Thu,Fri,Sat} weekday1, weekday2;//也可以类型与变量同时定义

枚举变量的值只能取枚举常量表中所列的值,就是整型数的一个子集。

枚举变量占用内存的大小与整型数相同。

枚举变量只能参与赋值和关系运算以及输出操作,参与运算时用其本身的整数值。

注意:

  • 枚举变量可以直接输出,但不能直接输入。如:cout >> color3;   //非法
  • 不能直接将常量赋给枚举变量。如:  color1=1; //非法
  • 不同类型的枚举变量之间不能相互赋值。如: color1=color3;  //非法
  • 枚举变量的输入输出一般都采用switch语句将其转换为字符或字符串;枚举类型数据的其他处理也往往应用switch语句,以保证程序的合法性和可读性。