C++语言_枚举类型

枚举类型

枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。

如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型。所谓"枚举"是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。

创建枚举,需要使用关键字 enum。枚举类型的一般形式为:

enum 枚举名{ 
     标识符[=整型常数], 
     标识符[=整型常数], 
... 
    标识符[=整型常数]
} 枚举变量;
    

如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始。

例如,下面的代码定义了一个颜色枚举,变量 c 的类型为 color。最后,c 被赋值为 "blue"。

enum color { red, green, blue } c;
c = blue;

默认情况下,第一个名称的值为 0,第二个名称的值为 1,第三个名称的值为 2,以此类推。但是,您也可以给名称赋予一个特殊的值,只需要添加一个初始值即可。例如,在下面的枚举中,green 的值为 5。

enum color { red, green=5, blue };

在这里,blue 的值为 6,因为默认情况下,每个名称都会比它前面一个名称大 1,但 red 的值依然为 0。

枚举类型在使用之前定义;

定义变量:

1.类型定义与变量声明同时进行:

enum color { red, green, blue } c = red;

2. 使用标识符赋值:

enum color { red, green, blue };
enum color c = red;

3.使用整型值:

enum color { red, green = 5, blue };
enum color c = 5;

 

关于枚举值的声明:

1.同一作用域下不能有两个相同的枚举类型:

2.同一作用域下的两个枚举类型不能有相同的枚举值:

enum color1 { red, green };
enum color2 { red, blue };

3.不能将非枚举量赋给枚举变量,但可以枚举量赋给非枚举变量。如:

int a = red;

 这是允许的,因为枚举量是符号常量,这里的赋值编译器会自动把枚举量转换为int类型。

4.枚举类型可进行赋值运算,但不可以进行加减运算。若枚举值为0-6,若进行加减运算,可能会使枚举值超出0-6的范围。

猜你喜欢

转载自blog.csdn.net/yanxu_165319/article/details/81120841
今日推荐