C++自定义数据类型之枚举

枚举

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

枚举是一种自定义数据类型,具有这种数据类型的量称为枚举常量。由于枚举常量实际上是一个int型常量,故称为枚举常量。

枚举是若干具有名字的整型常量的集合。这些整型常量组成了枚举表,枚举表中的每一项称为一个枚举符。枚举符就是一个有名字的常量,枚举量便是这个枚举表中的某一个枚举符。

枚举类型的定义格式为:enum <枚举名> { <枚举表> };

枚举量的定义格式为:enum <枚举名> <枚举量名表>;

例如:

enum day {Sun=7,Mon=1,Tue,Wed,Thu,Fri,Sat};

enumday d1,d2,d3;

则d1=Sun;

d2=Mon;

d3=Sat;都是正确的赋值方式。

而d1=Red;(Red不是枚举量d1所对应的枚举表中的枚举符)

d2=1;(枚举量不能直接赋予数值量,如果用枚举符所代表的int型值时,则为d2=(enum Mon)1)都是错误的赋值方式。

输出一个枚举量的值是int型数值,而不是枚举符:

cout<<d1<<‘,'<<d2<<endl;

输出的结果为:7,1

使用枚举量的优点:

1,枚举量的赋值范围被限定,能够提高程序中数据的安全性。给一个枚举量赋值时,若超出了它的枚举表的范围,则会发出编译出错。

2,使用枚举量会增加可读性,因为给一个简单的数值命名为枚举符,则可做到见名知意。

3,被说明的枚举量要进行类型检查,这样也会提高数据的安全性。

枚举常量和宏定义的区别与联系:

宏和枚举的主要区别是作用的时间和存储形式不同。宏定义是在编译预处理阶段作用的,也就是在编译预处理时,就会进行宏替换,,将程序中的所有宏名替换为所定义的常量名,而枚举则是在程序运行之后才起作用的。宏定义不分配内存空间,而枚举常量存储在数据的静态存储区中(这一点一定要注意)。宏只占用代码段的空间,而枚举除了占用代码段空间外,还耗费CPU资源。但是不能说宏就一定比枚举好,因为你定义一大堆的宏总是非常的不方便的。

举一个例子:

<span style="font-size:18px;">#include <iostream.h>#define PI 3.14159265 \\宏定义void main(){enum color {red=10,yellow=20,white,green,black}c1,c2; \\定义一个枚举常量(默认的是int型)c1=black;\\进行枚举量赋值c2=red;double r=1.2,s;s=2*PI*r;\\进行宏替换cout<<c1<<','<<c2<<endl;cout<<s<<endl;cout<<"c1+c2"<<"="<<c1+c2<<endl;cout<<"r+s"<<"="<<r+s<<endl;cout<<"c1+r"<<"="<<c1+r<<endl; \\自动转化为更高的数据类型(int转化为double)}</span>

深重如溺入蓝色的海洋,无法呼吸。

C++自定义数据类型之枚举

相关文章:

你感兴趣的文章:

标签云: