C语言自定义类型 — 枚举

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

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

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

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

目录

枚举

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;
}

代码结果:

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;
}

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

与大师约会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值