16.C enum(枚舉)

C enum(枚舉)

枚舉是 C 語言中的一種基本數據類型,它能夠讓數據更簡潔,更易讀。spring

枚舉語法定義格式爲:spa

enum 枚舉名 {枚舉元素1,枚舉元素2,……};it

接下來咱們舉個例子,好比:一星期有 7 天,若是不用枚舉,咱們須要使用 #define 來爲每一個整數定義一個別名:io

#define MON 1變量

#define TUE 2遍歷

#define WED 3數據類型

#define THU 4語法

#define FRI 5數據

#define SAT 6語言

#define SUN 7

使用枚舉的方式:

enum DAY
{
      MON=1, TUE, WED, THU, FRI, SAT, SUN
};

注意:第一個枚舉成員的默認值爲整型的 0,後續枚舉成員的值在前一個成員上加 1。咱們在這個實例中把第一個枚舉成員的值定義爲 1,第二個就爲 2,以此類推。

能夠在定義枚舉類型時改變枚舉元素的值:

enum season {spring, summer=3, autumn, winter};

沒有指定值的枚舉元素,其值爲前一元素加 1。也就說 spring 的值爲 0,summer 的值爲 3,autumn 的值爲 4,winter 的值爲 5

枚舉變量的定義

前面咱們只是聲明瞭枚舉類型,接下來咱們看看如何定義枚舉變量。

咱們能夠經過如下三種方式來定義枚舉變量

一、先定義枚舉類型,再定義枚舉變量

enum DAY
{
      MON=1, TUE, WED, THU, FRI, SAT, SUN
};
enum DAY day;

二、定義枚舉類型的同時定義枚舉變量

enum DAY
{
      MON=1, TUE, WED, THU, FRI, SAT, SUN
} day;

三、省略枚舉名稱,直接定義枚舉變量

enum
{
      MON=1, TUE, WED, THU, FRI, SAT, SUN
} day;

實例

#include<stdio.h>

enum DAY

{

MON=1, TUE, WED, THU, FRI, SAT, SUN };

int main()

{

enum DAY day; day = WED; printf("%d",day);

return 0;

}

以上實例輸出結果爲:

3

 

在C 語言中,枚舉類型是被當作 int 或者 unsigned int 類型來處理的,因此按照 C 語言規範是沒有辦法遍歷枚舉類型的。

不過在一些特殊的狀況下,枚舉類型必須連續是能夠實現有條件的遍歷。

如下實例使用 for 來遍歷枚舉的元素:

實例

#include<stdio.h>

enum DAY

{

MON=1, TUE, WED, THU, FRI, SAT, SUN

} day;

int main()

{

// 遍歷枚舉元素

for (day = MON; day <= SUN; day++)

{

printf("枚舉元素:%d \n", day);

         }

}

以上實例輸出結果爲:

枚舉元素:1 
枚舉元素:2 
枚舉元素:3 
枚舉元素:4 
枚舉元素:5 
枚舉元素:6 
枚舉元素:7

枚舉在 switch 中的使用:

#include <stdio.h>
#include <stdlib.h>
int main()
{
 
    enum color { red=1, green, blue };
 
    enum  color favorite_color;
 
    /* ask user to choose color */
    printf("請輸入你喜歡的顏色: (1. red, 2. green, 3. blue): ");
    scanf("%d", &favorite_color);
 
    /* 輸出結果 */
    switch (favorite_color)
    {
    case red:
        printf("你喜歡的顏色是紅色");
        break;
    case green:
        printf("你喜歡的顏色是綠色");
        break;
    case blue:
        printf("你喜歡的顏色是藍色");
        break;
    default:
        printf("你沒有選擇你喜歡的顏色");
    }
 
    return 0;
}

請輸入你喜歡的顏色: (1. red, 2. green, 3. blue): 1
你喜歡的顏色是紅色
相關文章
相關標籤/搜索