C 枚举

2018-05-20 15:17 更新

学习C - C枚举

使用枚举,您定义一个新的整数类型,其中类型的变量具有可能值的固定范围。

这里是一个定义了名为Weekday的枚举类型的语句的示例:

enum Weekday {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};

这个语句定义了一个类型。新类型的名称Weekday遵循枚举关键字,此类型名称称为枚举的标记。

枚举是整数类型,您指定的枚举器将对应于整数值。

默认情况下,枚举器将从零开始,每个连续的枚举器的值都比前一个枚举值多一个。

在这个例子中,星期一到星期日的值将为0到6.您可以声明一个类型为Weekday的变量,并将其初始化为:

enum Weekday today = Wednesday;

这声明一个名为today的变量,并将其初始化为星期三。

定义类型时也可以声明枚举类型的变量。

这是一个定义枚举类型加上两个变量的语句:

enum Weekday {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday} today, tomorrow;

这将声明枚举类型Weekday和该类型的今天和明天的两个变量。

当然你也可以在同一个语句中初始化变量,所以你可以这样写:

enum Weekday {Monday, Tuesday, Wednesday, Thursday, 
                      Friday, Saturday, Sunday} today = Monday, tomorrow = Tuesday; 

因为枚举类型的变量是整数类型,它们可以在算术表达式中使用。你可以这样写上面的语句:

  
enum Weekday {Monday, Tuesday, Wednesday, Thursday, 
              Friday, Saturday, Sunday} today = Monday, tomorrow = today + 1; 

枚举值

您可以显式地为任何或所有枚举器指定自己的整数值。

虽然您用于枚举器的名称必须是唯一的,但是枚举器值本身不需要是唯一的。

以下是如何定义Weekday类型,以便枚举器值从1开始:

enum Weekday {Monday = 1, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};

现在,枚举器周一到周日将对应于值1到7。

在枚举数后面有显式值的枚举器将被赋值连续的整数值。

您可以定义枚举来识别卡面值,如下所示:

  
enum FaceValue { two=2, three, four, five, six, seven, 
                 eight, nine, ten, jack, queen, king, ace}; 
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号