自定义数据类型——枚举类型

学习了一个月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.定义的枚举类型名不能和某一个变量名或者函数名相同。

猜你喜欢

转载自blog.csdn.net/weixin_43510732/article/details/84658128