学习了一个月C语言,却从来没有更新过博客,没有总结的学习是不完整的。好了,其实我是走C++方向的,就提前看了C++的有关内容。
C++除了和C语言一样常用的数据类型,他们还有允许用户自己来设计的一些数据类型,比如枚举型数据,结构型数据和链表。
我就简单的总结下枚举类型。
枚举类型允许用户自己来定义一种数据类型,并且列出该数据类型的取值范围。定义枚举类型的格式为:enum 类型名{常量1,常量2,常量3,…,常量n};
定义枚举类型的位置应该在程序首次使用该类型名之前,否则程序无法识别该类型。枚举类型中列出的常量称为枚举常量。它不是字符串也不是数值,而只是一些符号。
例如enum day{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};
下面写一段程序说明枚举类型的数据。
#include <iostream>
using namespace std;
enum day{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};
void nextday(day &D);
void dispaly(day D);
int main()
{
day today = Sunday;
for (int i = 0; i < 7;i++)
{
cout << "在today变量里的数据为" << today << endl;
dispaly(today);
nextday(today);
}
system("pause");
}
void nextday(day &D)
{
switch (D)
{
case Sunday:
D = Monday;
break;
case Monday:
D = Tuesday;
break;
case Tuesday:
D = Wednesday;
break;
case Wednesday:
D = Thursday;
break;
case Thursday:
D = Friday;
break;
case Friday:
D = Saturday;
break;
case Saturday:
D = Sunday;
}
}
void display(day D)
{
switch (D)
{
case Sunday:
cout << "星期天" << endl;
break;
case Monday:
cout << "星期一" << endl;
break;
case Tuesday:
cout << "星期二" << endl;
break;
case Wednesday:
cout << "星期三" << endl;
break;
case Thursday:
cout << "星期四" << endl;
break;
case Friday:
cout << "星期五" << endl;
break;
case Saturday:
cout << "星期六" << endl;
break;
}
}
运行结果
运行结果显示在day型变量today中保存的竟然是整数。也就是说,一个整数和一个枚举常量意义对应了起来。要注意的是一一对应,而不是相等。如果把整数直接赋值给today变量,则会发生错误。虽然枚举类型的实质是整数,但是计算机还会严格检查数据类型,禁止不同数据类型的数据互相赋值。另外,在一般情况下,枚举类型是不能进行算术运算的。
此外,值得注意的是
1.定义一个枚举类型时,不能有两个相同的枚举常量。
2.在定义两个不同的枚举类型时,不能有两个相同的枚举常量。
3.定义的枚举类型名不能和某一个变量名或者函数名相同。