前言:
一般而言,程序中的常数不直接使用该数字, 而是定义一个const数据类型来储存该常数,例如比率是0.5,就 const float rate = 0.5 。这样不仅可以在程序中的可以使用该参数,当别人或者自己再次调试代码时这些有意义的单词会使得阅读,理解和修改变得更容易。
但是当相同类型的常数太多时(例如颜色对应常数),一个一个的定义会很麻烦,于是就有了下面的 枚举
枚举 :enum 枚举类型名字{name0,name1——name n};
枚举所定义的变量类型一定是int,值从0到n。
enum colors {red,yellow,green};
red | 0 |
yellow | 1 |
green | 2 |
枚举的量可以作为值来使用,枚举相当于创立了一种新的数据类型(像int,float等),其值可以作为函数的参数,输入,也可以作为一般的数据类型使用,但究其根本,在c语言内部枚举还是以int类型作为计算
#include<stdio.h>
enum colors {red,yellow,green};//定义新变量类型colors//
void f(enum colors c)//函数原型,注意的是使用新变量类型时一定要加上enum//
int main ()
{enum t =red ;
scanf("%d",&t);
f(t);//调用函数f//
return ;
}
void f(enum colors c)//函数定义//
{
printf("%d\n",t);
}
在c语言中,使用enum定义的新数据类型时一定要加上enum(c++可以不用)(enum定义的新变量很少使用)
使用套路 :自动计算枚举数目。 在有意义的变量最后加一个numofenum或者是其他可以表示计算的词,这个词的值就是枚举的数目,当用枚举量作为数组下标时会很方便。
在定义枚举时也可以使用赋值给特定的变量赋值,如果被赋值的变量下一个没有被赋值,那么它的值就是被赋值变量的数值加1
enum colors {red=4,green,blue=9,yellow};
printf("green=%d,yellow=%d\n",green,yellow);