问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

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

提问网友 发布时间:2023-10-27 09:40
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
5个回答
热心网友 回答时间:2024-05-15 14:57

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

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的定义赋值操作。

热心网友 回答时间:2024-05-15 14:57
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();
}
热心网友 回答时间:2024-05-15 14:58
我不是高手哦 才了解了枚举,大概理解下吧~
通过使用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)
.....
来进行判断,但是明显用枚举可读性比较好。
------以上是我暂时的理解,再深刻一点,我怕我理解的错了 ,呵呵~
热心网友 回答时间:2024-05-15 14:59
onst很类似,,,基本就是一个常量,,只能给它一个初值,,不能再次赋值的,,
如果你不手动附初值的话,,它们是有默认值的,,第一个为0,,后面的依次比前面的多1,,
热心网友 回答时间:2024-05-15 14:59
枚举类型其实是整型,它的作用一是让数值看起来更直观二是圈定一个范围,是数值被限定在这个范围中.
语句如下:
enum color{red,orange,yello} a;
a = red;
if(a==0)
printf("a=0");

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

贷款买车必须安装gps定位吗1116 帮朋友办个工商银行二手车抵押贷款业务,车是他的,但在我的名下...1 小说中描写人物外貌的句子885 描写眼睛的句子,用来写小说。35 小米和红米的插口是和其他安卓智能手机一样么????? 1986年的一分钱硬币,值多少钱??129 对黄清清的亲密称呼 哪里有全套街机游戏打包下载?10 哪里可以免费下载街机游戏10 我怀疑女友出轨,该怎么办? 问一道德经经上说:道可道,非请问这 淘宝网上卖得O型腿矫正带真的管用吗?效果怎样?对此知道者请帮帮忙。 两个人杀人犯一个在逃被抓这个会不会被枪毕 衣服与围巾如何搭配才好看呢?5 围巾怎么搭配好看574 瞬间失忆,是什么原因 汽车发动不起来,电瓶及机油灯亮是怎么回事?8 冬天长时间不用采暖壁挂炉,该如何把水放空?4 用宽阔、灿烂、花卉、百合色、茄子紫造句11 1986年1分硬币价值多少273 在C++中,结构名,联合名,枚举名可直接作为类型名。这句话该...22 Java中枚举类型怎么赋值?6 有个字段,但是是枚举类型的,请问怎么办?我需要用到get 和...5 戴纳斯帝壁挂炉冬季不用了水怎么放干净? 汽车熄火后电瓶灯和机油灯亮21 汽车启动时电池灯和机油灯亮,怎么回事29 小说中的描写人物外貌的句子238 从宁波至武昌Z32次列车途经几个站、谢17 宁波到武昌的火车z32中途要经过哪几个站呀18 z32次列车走的那条路线20 工商银行的抵押车辆GPS有管理费吗? 如何进行中国工商银行汽车抵押贷款?38 刘国梁为什么不再担任国乒队总教练?3 小红和小明一共有28元小明比小红多八元小明要给小红多少元两人...5 刘国梁为什么卸任国兵总教练?54 刘国梁为什么被卸任乒乓球总教练198 刘国梁将退出乒乓球总教练位置?刘国梁为什么想退出总教练位置82 刘国梁被宣布不再担任国乒总教练为什么 当年刘国梁作为总教练为什么会弃用优秀的郭跃? 我把一个微信好友删了,但有转账记录,能不能找回对方?怎...
Top