地产网站互动营销,wordpress关闭站点,wordpress get_most_viewed,网站模板 兼容ie8一.枚举的定义和声明
字面意思#xff0c;枚举就是一一列举#xff0c;把可能的取值一一列举#xff0c;在我们现实生活中有许多可以列举的事物#xff0c;例如#xff1a;一周七天#xff0c;一年四季#xff0c;性别#xff0c;月份#xff0c;三原色等等。当我们需…一.枚举的定义和声明
字面意思枚举就是一一列举把可能的取值一一列举在我们现实生活中有许多可以列举的事物例如一周七天一年四季性别月份三原色等等。当我们需要描述这些数据的时候就可以使用枚举了。其关键字为eunm.
类似于结构体联合体定义一个枚举类型的基本形式如下 enum 枚举名 { 枚举常量1, 枚举常量2, //... 枚举常量n } 例如枚举一星期七天
enum Day//星期
{Mon,Tues,Wed,Thur,Fri,Sat,Sun
}; 以上定义的 enum Day 就是一种枚举类型。 { }中的内容是枚举类型的可能取值也叫枚举常量 。这些可能取值都是有值的默认从0开始依次递增1当然在声明枚举类型的时候也是可以赋初值的。后面的值也是顺次加1的 enum Color
{RED,//0GREEN,//1BLUE//2
};int main()
{//enum Color cl RED;//RED5//errprintf(%d\n, RED);printf(%d\n, GREEN);printf(%d\n, BLUE);return 0;
}
注意对于enum中的枚举常量在使用的时候是不可以再次赋值的因为它是一个常量值 只能在初始化的时候修改默认值。
二.枚举类型的优点
通过枚举的定义我们会发现它与#define效果很类似那我们为什么非要使用枚举
枚举的优点 #define相对来说更加简单粗暴就是将所有的符号替换为设定值并且作用域是全局的而对于枚举变量中的枚举常量编译器会将它视作一种变量类型更加严谨并且只能在函数内部使用作用范围更精确。我简单举两个案例直观感受一下enum的好处与用途
eg1:枚举的类型检查
enum Color//颜⾊
{RED1,GREEN2,BLUE4
};
enum Color clr GREEN;//使⽤枚举常量给枚举变量赋值
enum Color clr 2//err(c中)
eg2: 枚举的可读性
下面是一个简易计算器实现其中使用enum会将数字替换成名称增加代码可读性更加直观。
void menu()
{printf(**************************************);printf(******1.Add 2.Sub****************);printf(******3.Mul 4.Div****************);printf(***********0.Exit*********************);printf(**************************************);
}eunm
{Exit,//0Add,//1Sub,//2Mul,//3Div//4
}
int main()
{int input 0;printf(请输入-);scanf(%d, input);switch (input){case Add://1//Add();break;case Sub://2//Sub();break;case Mul://3//Mul();break;case Div://4//Dix();break;case Exit://0//Exit()break;default:break;}return 0;
}
eg3:枚举一次性定义多个变量相较于#define更加简洁明了。
enum Color
{RED,//0GREEN,//1BLUE//2
};#define RED 0
#define GREEN 0
#define BLUE 0
以上便是对C语言自定义类型变量的最后一种——枚举的简要介绍望屏幕前的你能有所收获