• 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;

    都是错误的。

        

  • 相关阅读:
    队列 和 线程 之GCD dispatch
    ios NSUserDefaults存储数据(偏好设置)
    Binary Tree postorder Traversal
    Binary Tree Inorder Traversal
    Binary Tree Preorder Traversal
    Rotate List
    Reversed Linked List(Reverse a singly linked list)
    Remove Element
    Swap Nodes in Pairs
    Add Two Numbers
  • 原文地址:https://www.cnblogs.com/causal360/p/4740882.html
Copyright © 2020-2023  润新知