C语言自定义类型 — 枚举

联合体:http://t.csdn.cn/xPGVu 

结构体: http://t.csdn.cn/vVtua

C语言自定义类型 — 枚举_第1张图片

这次带着大家学习了枚举类型的定义、优点以及使用。

下一篇将带着大家学习联合体方面的知识。

目录

枚举

1.枚举类型的定义

2.枚举类型的优点

3.枚举类型的使用


枚举

枚举其实就是一一列举的意思,把可能的取值一一列举。

例如:

  1. 一周的星期一到星期天一共有7天,可以一一列举。
  2. 性别有男、女人、保密也可以一一列举。
  3. 月份有12个月,也可以一一列举。

取值是有限的。

1.枚举类型的定义

例1:

enum Day//星期
{
	Mon,
	Tous,
	Wed,
	Thur,
	Fri,
	Sat,
	Sun
};
struct stu
{
    int a;
    char b;
};
  1. enum 是枚举关键字,Day 是枚举的标签;struct 是结构体关键字,stu 是结构体的标签。
  2. 两者都有1个{}和分号,结构体的叫成员变量,枚举的叫枚举常量。
  3. 在语法形式上,枚举都是一逗号结尾的,而结构体则是分号。

例2:

enum Day//星期
{
	Mon,
	Tous,
	Wed,
	Thur,
	Fri,
	Sat,
	Sun
};

int main()
{
	enum Day d = Fri;
	return 0;
}
  1. 此时的d表示的是星期五的意思,而且d的值只能是枚举类型其中的一个。
  2. {} 里面的内容是枚举类型的可能取值。

枚举类型的可能取值都是有值的,默认从0开始,一次递增1,当然在定义的时候也可以赋初值。

例3:

enum Day//星期
{
	Mon,//0
	Tous,//1
	Wed,//2
	Thur,//3
	Fri,//4
	Sat,//5
	Sun//6
};

int main()
{
	printf("%d\n", Mon);
	printf("%d\n", Tous);
	printf("%d\n", Wed);

	return 0;
}

代码结果:

例4:

修改枚举的默认值

enum Day//星期
{
	Mon = 1,
	Tous,
	Wed,
	Thur,
	Fri,
	Sat,
	Sun
};

int main()
{
	//enum Day d = Fri;
	printf("%d\n", Mon);
	printf("%d\n", Tous);
	printf("%d\n", Wed);
	printf("%d\n", Thur);
	printf("%d\n", Fri);
	printf("%d\n", Sat);
	printf("%d\n", Sun);

	return 0;
}

代码结果:

C语言自定义类型 — 枚举_第2张图片

2.枚举类型的优点

为什么要使用枚举呢

枚举的优点:

  1. 增加代码的可读性和可维护性
  2. 和#define定义的标识符比较枚举有类型检查,更加严谨
  3. 防止命名污染(封装)
  4. 便于调试
  5. 使用方便,一次可以定义多个常量

3.枚举类型的使用


enum Color//颜色
{
	RED = 1,
	GREEN = 2,
	BLUE = 4
};
int main()
{
	enum Color color = GREEN;//只能拿枚举常量给枚举变量赋值,才不会出现类型的差异。
	color = 5; //error
	return 0;
}

你可能感兴趣的:(C语言零基础入门到进阶,c语言,后端,开发语言,visual,studio)