可以使用枚举类型声明代表整数常量的符号名称。
通过enum,创建一个新类型,并指定它可以拥有的值。(就像平常用一个整形变量,我们指定它等于0的时候代表什么,1呢,2呢。。。而通过枚举,就增加了程序的可读性,好看)
它可以这样声明:
enum color {red,orange,yellow,green,blue,violet}; //声明enum color这种枚举类型
enum color c; //声明c为enum color类型
枚举常量都是int类型的常量。列表中的枚举常量默认被指定为整数0、1、2。。。也可以随便指定它的数值。在指定数值后面的没赋值的数默认递加1。
一个利用到enum的例子如下:
编写一个将输入复制到输出的程序,并将其中的多个空格用一个空格表示。
思路:这个程序在于你每读入一个字符,你都要根据它前面是在空格的状态(in)还是非空格的状态来决定输出。
1 #include<stdio.h>
2
3 int main(void)
4 {
5 enum state {in,out}; //in the space state
6
7 char c;
8 enum state s;
9
10 s = out;
11 while ((c = getchar()) != EOF)
12 {
13 if (c == ' ')
14 s = in;
15 else
16 {
17 if (s == in)
18 {
19 putchar(' ');
20 s = out;
21 }
22 putchar(c);
23 }
24 }
25 return 0;
26 }