手机
当前位置:查字典教程网 >编程开发 >C语言 >枚举类型的定义和应用总结
枚举类型的定义和应用总结
摘要:定义:如果一种变量只有几种可能的值,可以定义为枚举类型。所谓“枚举类型”是将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。声明:...

定义:

如果一种变量只有几种可能的值,可以定义为枚举类型。所谓“枚举类型”是将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。

声明:

声明枚举类型用enum开头,例如:

复制代码 代码如下:

enum weekday{sun,mon,tue,wed,thu,fri,sat};

上面声明了一个枚举类型weekday,花括号中的sun,mon,。。。。sat等称为枚举元素或枚举常量。

这些枚举常量,不会因为我们写了sun就自动代表着“星期天”,它只是一个符号,究竟用来代表什么含义,完全却决于程序员自己对它们的处理。

表示这个类型的变量的值只能是以上7个值之一,他们是用户自己定义的标识符。

在声明了枚举类型之后,就可以用它开定义变量。如

复制代码 代码如下:

weekday workday,week_end;

这样,workday和week_end被定义为枚举类型weekday的变量。

说明:

(1)对枚举元素按照常量处理,故称为枚举常量。它们不是变量,不能对他们赋值。

(2)枚举元素作为常量,它们是有值的,C++编译按定义时的顺序对它们赋值为0,1,2,3,......

复制代码 代码如下:

#include<iostream>

using namespace std;

int main(){

enum weekday{sun,mon,tue,wed,thu,fri,sat};

weekday one;

one=sun;

cout<<one;

cout<<endl;

}

枚举类型的定义和应用总结1

我们也卡一在声明枚举类型时,另行指定枚举元素的值,如

复制代码 代码如下:

#include<iostream>

using namespace std;

int main(){

enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat};

weekday one,two;

one=sun;

two=wed;

cout<<one<<endl;

cout<<two<<endl;

cout<<endl;

}

枚举类型的定义和应用总结2

指定sun为7,mon为1,以后按顺序加1,sat为6。

(3)枚举值可以用来做比较。

枚举值的比较规则是按其在声明枚举类型时的顺序号比较。如果定义时未人为指定,则第一个枚举元素的值认作0.

复制代码 代码如下:

#include<iostream>

using namespace std;

int main(){

enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat};

weekday one,two;

one=sun;

two=wed;

cout<<(sun>wed?sun:wed);

cout<<endl;

}

枚举类型的定义和应用总结3

(4)一个整数不能直接赋给一个枚举变量,应先进行强制类型转换才能赋值。

复制代码 代码如下:

#include<iostream>

using namespace std;

int main(){

enum weekday{sun,mon,tue,wed,thu,fri,sat};

weekday one;

one=weekday(7);

cout<<one;

cout<<endl;

}

枚举类型的定义和应用总结1

以上的语句是将序号为2的枚举元素赋给one。相当于

复制代码 代码如下:

one=sun;

一个例子:

口袋中有红、黄、蓝、白、黑5种颜色的球若干。每次从口袋中任意取出3个球,问得到3中不同颜色的球的可能取法,输出每种排列的情况。

分析:球的颜色只有5种,每一个球的颜色只能是这5种之一,因此可以用枚举类型变量来处理。

复制代码 代码如下:

/*******

设某一次取出的颜色为i,j,k。显然,i,j,k都是以上5中颜色之一,根据题意,

要求i,j,k三者互不相同。可以用穷举法,对每一种可能分别进行测试,看那一组符合条件

*****/

#include<iostream>

using namespace std;

int main(){

enum color{red,yellow,blue,white,black};

color pri;

int i,j,k,n=0,loop;

for(i=red;i<=black;i++){

for(j=red;j<=black;j++)

if(i!=j){

for(k=red;k<=black;k++){

if(k!=i&&k!=j){

n++;//使n累加,统计可能的抽取情况

cout<<n<<"t";

for(loop=0;loop<3;loop++){//通过循环,输出该次i,j,k所对应的颜色

switch(loop){

case 0:pri=color(i);break;

case 1:pri=color(j);break;

case 2:pri=color(k);break;

}

switch(pri){

case red: cout<<"redt";break;

case yellow:cout<<"yellowt";break;

case blue: cout<<"bluet";break;

case white: cout<<"whitet";break;

case black: cout<<"blackt";break;

}

}

cout<<endl;

}

}

}

}

cout<<"total:"<<n<<endl;

}

枚举类型的定义和应用总结4

【枚举类型的定义和应用总结】相关文章:

深入分析C语言中结构体指针的定义与引用详解

基于c++强制类型转换的(总结)详解

枚举和宏的区别详细解析

关于C/C++中static关键字的作用总结

C++中的对象指针总结

C++中const的用法详细总结

基于C++类型重定义的使用详解

map插入自定义对象总结

关于C/C++中typedef的定义与用法总结

C/C++ 多线程的学习心得总结

精品推荐
分类导航