您的位置:首页 > 编程语言 > C语言/C++

c语言中枚举的使用

2015-08-18 23:06 260 查看

枚举的定义:

枚举的定义: enum [枚举名] {美剧类型列表}; 说完了声明枚举,我们开始考虑具 “枚举常量” 代表什么?

通过上边的定义 我们可以写出枚举的基本写法(ps: [] 代表可选);

1. 声明 使用

enum Weekday {
sun,
mon,
tue,
wed,
thu,
fri,
sat
};
//  ok
enum Weekday  weekday,weekend;


  

2. 声明 使用

enum Weekday {
sun,
mon,
tue,
wed,
thu,
fri,
sat
}weekday,weekend;


   

枚举常量

1. 我们举个例子说明

#include <stdio.h>
enum Weekday {
sun = 7,
mon = 0,
tue = 1,
wed = 3,
thu,
fri,
sat
}weekday,weekend;

int main(int argc, char *argv[])
{
printf("%d\n",weekday=sun);
printf("%d\n",weekday=mon);
printf("%d\n",weekday=tue);
printf("%d\n",weekday=wed);
return 0;
}


   


我们 总结一下陈词:

C编译对枚举类型的枚举元素按照常量处理,所以称之为枚举常量。

每一个枚举元素都代表一个整数,C语言编译是按照定义时的顺序默认它们的值为0,也就是说如果

开始的时候如果未对 “sun” 赋初始值的话, “sun”即为 0; 后边的数字为 1,2,3,4,5,6。

枚举易错

    

#include <stdio.h>
enum Weekday {
sun = 7,
mon = 0,
tue = 1,
wed = 3,
thu,
fri,
sat
}one,two,three;

int main(int argc, char *argv[])
{
one = mon;
two = tue;
three = wed;
printf("%d  %d  %d\n",one,two,three);
return 0;
}


1. 因为枚举值是常量,不能赋值,所以下面的写法是错误的

sun = 5;
mon = 2;


只能把枚举值赋予枚举变量,例如:

     


     a = sun;
     b = sat;


2.同时,不建议把数值直接赋给枚举变量,例如

    a= 1;
  b= 6;


    


  a = (enum week)1;  //如果一定要使用数值,必须使用强制类型转换:

  b = (enum week)6;



因为已经使用了 sun、mon…sat 几个标识符,所以不能再使用它们来定义变量等,例如:

    


 int sun = 3;
 char mon;


都是错误的。

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: