枚举
枚举顾名思义就是依次列举
把可能的取值依次列举。
生活中我们可以找到有些值是有限的几种那我们就可以进行枚举;
枚举类型的定义
枚举关键字"enum";
enum sex
{
MALE,
FEMALE,
SECRET
}
对性别进行枚举;
enum Day
{
Mon,Tues,wed,Thur,Fri,sat,sun
};
对星期进行枚举;
枚举的使用;
int main()
{
enum Day d = Fri;
return 0;
}
{}内的值我们称为枚举常量,他们之间用逗号隔开;与结构体不同的是结构体成员有类型设置,
枚举常量没有类型设置;结构体成员变量之间使用分号隔开;
枚举常量到底有没有值呢?
通过测试我们发现如果没有给枚举常量赋值时,他们的值从上到下由0开始递增;
当我们赋值给第一个mon=1时,他们从1开始依次递增;这时候我们的枚举常量就代表我们的星期数1-7
生活中我们有些值不容易一一列举比如身高体重..;
定义一个枚举类型并不会在内存中占用空间;只有在创建变量时它才向内存申请空间;(和结构体一致);
只能用枚举常量来给枚举变量赋值;
枚举的优点为什么使用枚举?
我们可以使用#define定义常量,为什么非要使用枚举?
枚举的优点:
1.增加代码的可读性和可维护性
2.和#define定义的标识符比较枚举有类型检查,更加严谨.(C语言中体现不明显 C++容易体现);
3.防止了命名污染(封装)
4.便于调试(define定义的符号不便于调试;在调试过程中符号被替换不便于观察);
5.使用方便,一次可以定义多个常量d