C/C++中列举范例(enum)
当前位置:以往代写 > C/C++ 教程 >C/C++中列举范例(enum)
2019-06-13

C/C++中列举范例(enum)

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();
}

    关键字:

在线提交作业