枚举类型详解
对于枚举类型,想必不少的读者,也是听过,但是,却没怎么见过如何使用!!所以,笔者打算用这一篇博客,来详细的讲解一下,枚举!!
对于枚举,顾名思义,就是一一列举,把可能的值一一列举!!
比如,我们现实生活中:
一周的是:星期一到星期日,是有限的7天,可以一一列举
性别有:男,女,保密,也可以一一列举!
月份有1到12个月,也可以一一列举出来!
因此,在上述的情况下,就用到了枚举了!!
枚举定义的简单使用:描述星期
enum day //星期
{
mon, //注意,这儿是逗号(,)!!
tues,
wed,
thur,
fri,
sat,
sun,
};
这里,需要注意的是:
1.枚举(enum)!
2。枚举的各种可能之间用逗号(,)隔开, 末尾的分号(;)系统自动携带,请不要删除!!
3.列举出来的是枚举的可能取值!!
描述性别:
enum sex //性别
{
male,
famale,
serect,
};
描述颜色:
enum color //颜色
{
red,
green,
blue,
};
下面,笔者用代码,来描述一下:枚举的类型的使用:
#include <stdio.h>
enum color //颜色
{
red,
green,
blue,
};
int main()
{
enum color c = blue;
return 0;
}
在枚举里面,每个可能只能出现一次,不能多次出现,就比如,今天是星期四,在这个星期里面,只有一天是星期四的情况!!
枚举的可能取值:每一个的可能取值是常量,不可以修改!!
#include <stdio.h>
enum color //颜色
{
red,
green,
blue,
};
int main()
{
printf("red= %d\n", red); //0
printf("green= %d\n", green); //1
printf("blue= %d\n", blue); //2
return 0;
}
代码的运行结果,就可以很好的证明:枚举的可能取值是个常量!!请看代码的运行结果:
但是对于上述的代码:(更改的区别在于枚举类型中)
#include <stdio.h>
enum color //颜色
{
red=5,
green,
blue,
};
int main()
{
printf("red= %d\n", red);
printf("green= %d\n", green);
printf("blue= %d\n", blue);
return 0;
}
该段代码,仅仅是将:red=5进行了赋值,但是代码运转后的结果为:
枚举的可能取值:大小 依次往下增加1
但是,当全部都赋值的情况下,运行的结果又出现了反转:
#include <stdio.h>
enum color //颜色
{
red=5,
green=9,
blue=11,
};
int main()
{
printf("red= %d\n", red);
printf("green= %d\n", green);
printf("blue= %d\n", blue);
return 0;
}
代码的运行结果为:
对比上面三个结果,我们可以看出来:枚举的可能取值以整型的形式存在!!
下面,我们对该枚举类型进行求一下所占字节的大小:
#include <stdio.h>
enum color //颜色
{
red = 5,
green = 9,
blue = 11,
};
int main()
{
printf("enmu color所占字节的大小为:%d\n", sizeof(enum color));
return 0;
}
代码的运行结果为:
在上面的代码所求的结果中,我们也可以看出来:
枚举类型,只可能取一个值(以整型的形式存在)取决于编译器!!
经过上述的详解,笔者总结出一下:
枚举类型的优点:
1.增加代码的可读性与可维护性
2.和#define定义的标识符比较,枚举类型检查更加严谨!
3.防止了命名污染(封装)
4.便于调试!
5.使用方便,一次可以定义多个常量!!
- 点赞
- 收藏
- 关注作者
评论(0)