当前位置:网站首页>C语言自定义类型——枚举类型讲解

C语言自定义类型——枚举类型讲解

2022-08-11 05:16:00 云逸943

一.枚举类型

定义:顾名思义就是一一列举,可以列举出所有常见的可能。每种可能都是常量,称为枚举常量!
把可能的取值一一列举。
比如我们现实生活中:
一周的星期一到星期日是有限的7天,可以一一列举;

enum day {
	Mon=1,
	Tues=2,
	Wek=4,
	Thes,
	Fri,
	Sat,
	Sun
};


性别有:男、女,也可以一一列举;

enum Sex//性别
{
	MALE,
	FEMALE,
};


颜色也有多个,也可以一一列举。

enum Color//颜色
{
	RED,
	GREEN,
	BLUE,
	BLACK,
    YELLOW,
    PINK,
    WHITE
};

       两者的相同点:1.都需要关键字,结构体用struct,枚举用enum关键字;且都要写类型                                     名。

                                 2.类型的最后使用分号完结。

           枚举类型与结构体类型不同地方在于:

        1.枚举中的成员每写一个都要用逗号分开,而结构体每个成员变量需要分号隔开;

        2.枚举类型可以创建的时候就赋初值,而结构体需要在体外赋值。 

        根据两者区别的第二点,我们来演示一下枚举类型赋值情况:

1.默认赋值

enum Color1//颜色
{
	RED,
	GREEN,
	BLUE,
	BLACK,
	YELLOW,
	PINK,
	WHITE
};

int main(){
    printf("%d\n", RED);
	printf("%d\n",GREEN );
	printf("%d\n", BLUE);
	printf("%d\n", BLACK);
	printf("%d\n", YELLOW);
	printf("%d\n", PINK);
	printf("%d\n", WHITE);

	return 0;
}

        通过代码调试所得结果可知:枚举常量若是不赋值的话,默认从第一个开始的枚举常量值为0开始 。

2.手动赋值


//练习1.
enum day {//星期
	Mon=1,
	Tues=2,
	Wek=4,
	Thes,
	Fri,
	Sat,
	Sun
};


int main() {
	enum day d = Tues;

	printf("%d\n", d);
    
    printf("%d\n",Fri);
    
return 0;
}


enum Color//颜色
{
	RED=1,
	GREEN=2,
	BLUE=9,
	BLACK
};

int main() {

	enum Color c = GREEN;
	printf("%d\n", c);//2 ,因为枚举类型中赋值了GREEN

	c = 5;
	printf("%d\n", c);//5

	printf("%d\n", BLACK);

 

        总结:通过两个练习,我们可以知道:

枚举类型创建的变量可以进行修改,但枚举常量不会因此被修改。

枚举常量BLACK为10,因为BLUE为9,下一个枚举常量总是上一个枚举常量的值+1。 

 

 二.枚举类型的优点

 我们可以使用 #define 定义常量,为什么非要使用枚举?

枚举的优点: 1. 增加代码的可读性和可维护性

2. 和#define定义的标识符比较枚举有类型检查,更加严谨。

3. 防止了命名污染(封装)

4. 便于调试

5. 使用方便,一次可以定义多个常量

 

以上就是枚举类型的知识点了,大家觉得有用的话,点个一键三连吧,谢谢!

原网站

版权声明
本文为[云逸943]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_69283129/article/details/126107547