c语言中枚举的使用

枚举的定义:

枚举的定义: 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
",weekday=sun);
    printf("%d
",weekday=mon);
    printf("%d
",weekday=tue);
    printf("%d
",weekday=wed);
    return 0;
}

    

我们 总结一下陈词:

  1. C编译对枚举类型的枚举元素按照常量处理,所以称之为枚举常量。
  2. 每一个枚举元素都代表一个整数,C语言编译是按照定义时的顺序默认它们的值为0,也就是说如果
  3. 开始的时候如果未对  “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
",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;

都是错误的。

    

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