1. 程式人生 > >【C語言】--列舉的定義和輸出詳解

【C語言】--列舉的定義和輸出詳解

在C語言中,定義常量有三種方式

    a)、  #define   N 5     (巨集定義)   它的作用就是 直接替換。而且是在預處理語句中  

    b) 、  const  int = 8  這個是定義常量的常規操作  編譯器通常不為普通const常量分配儲存空間,而是將它們儲存在符號表中,具有不可變性 提高了效率

    c) 、  enum  名字 {ONE=?(直接賦值就是給初始化) ,TWO  ,THREE.......}p;    (這個p是可以寫也可以不寫 是給列舉重新命名 後面好使用)  

            列舉如果你不初始化的話,它預設從第一個元素到最後一個元素 依次為0   1   2   3   4    5.。。。。。n

   最標準的結構應該是這樣 :

enum 列舉名{識別符號[=整型常數],識別符號[=整型常數],...識別符號[=整型常數]} 列舉變數;

那麼如何輸出列舉值和列舉子呢?

1 輸出列舉值
  我們先看一個簡單的,輸出列舉值,其實非常簡單以整數形式輸出即可,如下:

    printf("%d\n",ONE);    //它的輸出結果會為0
2 輸出列舉子

  這裡有個很大的誤區,很多人會根據上面的輸出聯想到下面的方法:

        printf("%s\n", (p)1);      //error   這是錯誤的  列舉可以直接列印 。它就相當於巨集定義一般 是直接替換的

3 舉例輸出

#include<stdio.h>


enum opt{
        ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN
        }op;

int main(void){
                printf("%d\n",ONE);
                printf("%d\n",TWO);
                printf("%d\n",SIX);


        return 0;
}