C/C++中的枚举类型enum

本文详细介绍了枚举类型的定义、使用方法及其注意事项。包括如何定义枚举类型、枚举元素的赋值规则、枚举变量的使用及特殊情况下枚举元素的自动类型提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<p>如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 <br><br>
  举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它!</p>
<p class="code"><span style="color: #0000ff;">enum</span>
box{pencil,pen};<span style="color: green;">//这里你就定义了一个枚举类型的变量叫box,这个枚举变量内含有两个元素也称枚举元素在这里是pencil和pen,分别表示铅笔和钢笔。</span>
</p>
<p>  这里要说一下,如果你想定义两个具有同样特性枚举类型的变量那么你可以用如下的两种方式进行定义! </p>
<p class="code"><span style="color: #0000ff;">enum</span>
box{pencil,pen}; <br><br><span style="color: blue;">enum</span>
boxbox2;<span style="color: green;">//或者简写成boxbox2;</span>
</p>
<p>  再有一种就是在声明的时候同时定义。</p>
<p class="code"><span style="color: #0000ff;">enum</span>
{pencil,pen}box,box2;<span style="color: green;">//在声明的同时进行定义!</span>
</p>
<p>  枚举变量中的枚举元素系统是<span style="background-color: #b000b0; color: #ffffff;">按照常量来处理</span>
的,故叫<span style="color: #ff0000;"><strong>枚举常量</strong>
</span>
,他们是不能进行普通的算术赋值的,(pencil=1;)这样的写发是错误的,但是你可以在声明的时候进行赋值操作! </p>
<p class="code"><span style="color: #0000ff;">enum</span>
box{pencil=1,pen=2};</p>
<p> 但是这里要特别注意的一点是,如果你不进行元素赋值操作那么元素将会被系统自动从0开始自动递增的进行赋值操作,说到自动赋值,如果你只定义了第一个那么系统将对下一个元素进行前一个元素的值加1操作,例如</p>
<p class="code">enumbox{pencil=3,pen};<span style="color: green;">//这里pen就是4系统将自动进行pen=4的定义赋值操作!</span>
</p>
<p>  前面说了那么多,下面给出一个完整的例子大家可以通过以下的代码的学习进行更完整的学习!</p>
<p class="code">#include<<span style="color: maroon;">iostream</span>
> <br><span style="color: blue;">using</span>
<span style="color: blue;">namespace</span>
std; <br><br><span style="color: blue;">void</span>
<span style="color: blue;">main</span>
(<span style="color: blue;">void</span>
) <br>
{ <br><span style="color: blue;">enum</span>
egg{a,b,c}; <br><span style="color: blue;">enum</span>
eggtest;<span style="color: green;">//在这里你可以简写成eggtest;</span>
<br><br>
test<span style="color: red;">=</span>
c;<span style="color: green;">//对枚举变量test进行赋予元素操作,这里之所以叫赋元素操作不叫赋值操作就是为了让大家明白枚举变量是不能直接赋予算数值的,例如(test=1;)这样的操作都是不被编译器所接受的,正确的方式是先进行强制类型转换例如(test<span style="color: red;">=</span>
(enumegg)0;)!</span>
<br><br><span style="color: blue;">if</span>
(test==c) <br>
{ <br><span style="color: maroon;">cout</span>
<<"枚举变量判断:test枚举对应的枚举元素是c"<<endl; <br>
} <br><br><span style="color: blue;">if</span>
(test==2) <br>
{ <br><span style="color: maroon;">cout</span>
<<"枚举变量判断:test枚举元素的值是2"<<endl; <br>
} <br><br><span style="color: maroon;">cout</span>
<<a<<"|"<<b<<"|"<<test<<endl; <br><br>
test<span style="color: red;">=</span>
(<span style="color: blue;">enum</span>
egg)0;<span style="color: green;">//强制类型转换</span>
<br><span style="color: maroon;">cout</span>
<<"枚举变量test值改变为:"<<test<<endl; <br><span style="color: maroon;">cin</span>
.get(); <br>
} </p>
<p>  看到这里要最后说一个问题,就是枚举变量中的枚举元素(或者叫枚举常量)在特殊情况下是会被<span style="background-color: #b000b0; color: #ffffff;">自动提升为算术类型</span>
的!</p>
<p class="code">#include<<span style="color: maroon;">iostream</span>
> <br><span style="color: blue;">using</span>
<span style="color: blue;">namespace</span>
std; <br><br><span style="color: blue;">void</span>
<span style="color: blue;">main</span>
(<span style="color: blue;">void</span>
) <br>
{ <br><span style="color: blue;">enum</span>
test{a,b}; <br><span style="color: blue;">int</span>
c=1+b;<span style="color: green;">//自动提升为算术类型</span>
<br><span style="color: maroon;">cout</span>
<<c<<endl; <br><span style="color: maroon;">cin</span>
.get(); <br>
} </p>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值