枚举类型究竟有什么用?该怎么用? 求高手解答!

 我来答
大大的Wiener
2018-03-31 · TA获得超过6.4万个赞
知道大有可为答主
回答量:392
采纳率:90%
帮助的人:33.2万
展开全部

枚举类型其实是整型,它的作用一是让数值看起来更直观二是圈定一个范围,是数值被限定在这个范围中。

1、 如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 

2、 举个例子来说明一下吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它!

enum box{pencil,pen};//这里你就定义了一个枚举类型的变量叫box,这个枚举变量内含有两个元素也称枚举元素在这里是pencil和pen,分别表示铅笔和钢笔。

3、这里要说一下,如果你想定义两个具有同样特性枚举类型的变量那么你可以用如下的两种方式进行定义! 

enum box{pencil,pen};  

enum box box2;//或者简写成box box2;

再有一种就是在声明的时候同时定义。

enum {pencil,pen}box,box2; //在声明的同时进行定义!

枚举变量中的枚举元素系统是按照常量来处理的,故叫枚举常量,他们是不能进行普通的算术赋值的,(pencil=1;)这样的写法是错误的,但是你可以在声明的时候进行赋值操作! 

enum box{pencil=1,pen=2};

4、但是这里要特别注意的一点是,如果你不进行元素赋值操作那么元素将会被系统自动从0开始自动递增的进行赋值操作,说到自动赋值,如果你只定义了第一个那么系统将对下一个元素进行前一个元素的值加1操作,例如

enum box{pencil=3,pen};//这里pen就是4系统将自动进行pen=4的定义赋值操作。

依玉宇4s
推荐于2017-09-02 · TA获得超过181个赞
知道答主
回答量:399
采纳率:0%
帮助的人:124万
展开全部
C/C++中枚举类型(enum)

如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。

举个例子来说明一下吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它!

enum box{pencil,pen};//这里你就定义了一个枚举类型的变量叫box,这个枚举变量内含有两个元素也称枚举元素在这里是pencil和pen,分别表示铅笔和钢笔。
这里要说一下,如果你想定义两个具有同样特性枚举类型的变量那么你可以用如下的两种方式进行定义!

enum box{pencil,pen};

enum box box2;//或者简写成box box2;
再有一种就是在声明的时候同时定义。

enum {pencil,pen}box,box2; //在声明的同时进行定义!
枚举变量中的枚举元素系统是按照常量来处理的,故叫枚举常量,他们是不能进行普通的算术赋值的,(pencil=1;)这样的写法是错误的,但是你可以在声明的时候进行赋值操作!

enum box{pencil=1,pen=2};
但是这里要特别注意的一点是,如果你不进行元素赋值操作那么元素将会被系统自动从0开始自动递增的进行赋值操作,说到自动赋值,如果你只定义了第一个那么系统将对下一个元素进行前一个元素的值加1操作,例如

enum box{pencil=3,pen};//这里pen就是4系统将自动进行pen=4的定义赋值操作!
前面说了那么多,下面给出一个完整的例子大家可以通过以下的代码的学习进行更完整的学习!

#include <iostream>
using namespace std;

void main(void)
{
enum egg {a,b,c};
enum egg test; //在这里你可以简写成egg test;

test = c; //对枚举变量test进行赋予元素操作,这里之所以叫赋元素操作不叫赋值操作就是为了让大家明白枚举变量是不能直接赋予算数值的,例如(test=1;)这样的操作都是不被编译器所接受的,正确的方式是先进行强制类型转换例如(test = (enum egg) 0;)!

if (test==c)
{
cout <<"枚举变量判断:test枚举对应的枚举元素是c" << endl;
}

if (test==2)
{
cout <<"枚举变量判断:test枚举元素的值是2" << endl;
}

cout << a << "|" << b << "|" << test <<endl;

test = (enum egg) 0; //强制类型转换
cout << "枚举变量test值改变为:" << test <<endl;
cin.get();
}
看到这里要最后说一个问题,就是枚举变量中的枚举元素(或者叫枚举常量)在特殊情况下是会被自动提升为算术类型的!

#include <iostream>
using namespace std;

void main(void)
{
enum test {a,b};
int c=1+b; //自动提升为算术类型
cout << c <<endl;
cin.get();
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
中月杨0F
2011-03-09
知道答主
回答量:16
采纳率:0%
帮助的人:13万
展开全部
我不是高手哦 才了解了枚举,大概理解下吧~
通过使用enum,可以创建一个新的类型,并且制定它可以具有的值(实际上是INT型的,虽然大多用字符来枚举,可是这些字符都代表的是INT型的整数常量)主要的使用目的是为了增加程序的可读性。简单来说,就是我们在选择分支的时候,可以定义一个变量来确定各个分支的顺序,比如0,1,2,3,4,。。。。但是这样不好读,尤其是编写者之外的人读,很让人费解,这个时候可以,0.1.2,3,4.。。赋予一些实际的含义。典型的例子:
enum spectrum {red,orange,yellow,green,blue,violet};---
enum spectrum color;
以上定义了color的可能值red,orange等等。
以下是应用:
int c;
color=blue;
if (color == yellow)
....;
如果不用枚举量,我们可以用
int color;
color=1;
if (color ==1)
.....
来进行判断,但是明显用枚举可读性比较好。
------以上是我暂时的理解,再深刻一点,我怕我理解的错了 ,呵呵~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户05175
2011-03-09 · 超过43用户采纳过TA的回答
知道答主
回答量:225
采纳率:0%
帮助的人:0
展开全部
onst很类似,,,基本就是一个常量,,只能给它一个初值,,不能再次赋值的,,
如果你不手动附初值的话,,它们是有默认值的,,第一个为0,,后面的依次比前面的多1,,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
义昀欣ek
2011-03-09 · TA获得超过3298个赞
知道小有建树答主
回答量:6776
采纳率:0%
帮助的人:2170万
展开全部
枚举类型其实是整型,它的作用一是让数值看起来更直观二是圈定一个范围,是数值被限定在这个范围中.
语句如下:
enum color{red,orange,yello} a;
a = red;
if(a==0)
printf("a=0");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式