c/c++中,枚举类型

enum关键字

特点:

1、枚举类型是受限制的有符号整型数据类型;int;

2、枚举元素(枚举常量)必须是有符号整型数据值;

3、枚举类型定义的变量,取值范围必须是枚举集合中的枚举元素的值。

enum Week{Mon=1,TUe,Wed,Thu,Fri,Sat,Sun};

<1>枚举类型是一个集合,集合中的枚举元素是用标识符命名的整型常量

枚举元素之间用逗号隔开

<2>Week是一个标识符(枚举名)

<3>第一个枚举元素默认整型0,后续枚举元素在前一位基础依次加1

<4>同时可以人为设定枚举元素的值,从而自定义某个范围内int值

enum Week
{
	Mon,Tue,Wed,Thu,Fri,Sat,Sun
};
int main()
{
	enum Week day = Sun;
	day++;
	day += 1;
	day - =2;
	day = Mon + Tue;

}

上面运算符都是错的,枚举类型变量只是复制前面集合中的枚举元素

2、枚举元素不能重命名

这里和宏#define重名一样。

但是宏在预编译时替换,

枚举在编译时替换。

3、全局枚举变量

enum Week{Mon,Sun} WeekDay;

4、枚举类型名和typdef

与struct相似

typedef enum (Week){Mon,Sun}WeekDay;

5、用途

1>函数返回值的处理;

项目实践中,数据结构

#define OK 1
#define ERROR 0
#define OVERFILOW -1
#define PTRNUOLL -2



void Find_Value(const char* pa, int b, char* pc)
{
	while (!*pa)return PTRNUOLL;


	return ERROR;,

	return OK;
}



typedef enum (Select){PTRNUOLL -2,OVERFILOW -1,ERROR 0,OK 1} Find_Value;
void Find_Value(const char* pa, int b, char* pc)
{
	while (!*pa)return PTRNUOLL;


	return ERROR;,

	return OK;
}

2>状态方程中的处理

最后说一句,枚举状态值是“复制、复制再复制”。别用scanf从键盘上输入,二傻子,哈哈哈

你可能感兴趣的:(c语言图论,C语言,c语言,c++)