码迷,mamicode.com
首页 > 编程语言 > 详细

c语言中枚举的使用

时间:2015-08-19 00:26:50      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

 枚举的定义:  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;

 

    都是错误的。

    

c语言中枚举的使用

标签:

原文地址:http://www.cnblogs.com/causal360/p/4740882.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!