中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

C enum(枚舉)

枚舉是 C 語(yǔ)言中的一種基本數(shù)據(jù)類型,它可以讓數(shù)據(jù)更簡(jiǎn)潔,更易讀。

枚舉語(yǔ)法定義格式為:

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

接下來(lái)我們舉個(gè)例子,比如:一星期有 7 天,如果不用枚舉,我們需要使用 #define 來(lái)為每個(gè)整數(shù)定義一個(gè)別名:

#define MON 1 #define TUE 2 #define WED 3 #define THU 4 #define FRI 5 #define SAT 6 #define SUN 7

這個(gè)看起來(lái)代碼量就比較多,接下來(lái)我們看看使用枚舉的方式:

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

這樣看起來(lái)是不是更簡(jiǎn)潔了。

注意:第一個(gè)枚舉成員的默認(rèn)值為整型的 0,后續(xù)枚舉成員的值在前一個(gè)成員上加 1。我們?cè)谶@個(gè)實(shí)例中把第一個(gè)枚舉成員的值定義為 1,第二個(gè)就為 2,以此類推。

可以在定義枚舉類型時(shí)改變枚舉元素的值:

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

沒(méi)有指定值的枚舉元素,其值為前一元素加 1。也就說(shuō) spring 的值為 0,summer 的值為 3,autumn 的值為 4,winter 的值為 5

枚舉變量的定義

前面我們只是聲明了枚舉類型,接下來(lái)我們看看如何定義枚舉變量。

我們可以通過(guò)以下三種方式來(lái)定義枚舉變量

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

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

2、定義枚舉類型的同時(shí)定義枚舉變量

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

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

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

實(shí)例

#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; }

以上實(shí)例輸出結(jié)果為:

3

在C 語(yǔ)言中,枚舉類型是被當(dāng)做 int 或者 unsigned int 類型來(lái)處理的,所以按照 C 語(yǔ)言規(guī)范是沒(méi)有辦法遍歷枚舉類型的。

不過(guò)在一些特殊的情況下,枚舉類型必須連續(xù)是可以實(shí)現(xiàn)有條件的遍歷。

以下實(shí)例使用 for 來(lái)遍歷枚舉的元素:

實(shí)例

#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); } }

以上實(shí)例輸出結(jié)果為:

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

以下枚舉類型不連續(xù),這種枚舉無(wú)法遍歷。

enum
{
    ENUM_0,
    ENUM_10 = 10,
    ENUM_11
};

枚舉在 switch 中的使用:

實(shí)例

#include <stdio.h> #include <stdlib.h> int main() { enum color { red=1, green, blue }; enum color favorite_color; /* 用戶輸入數(shù)字來(lái)選擇顏色 */ printf("請(qǐng)輸入你喜歡的顏色: (1. red, 2. green, 3. blue): "); scanf("%d", &favorite_color); /* 輸出結(jié)果 */ switch (favorite_color) { case red: printf("你喜歡的顏色是紅色"); break; case green: printf("你喜歡的顏色是綠色"); break; case blue: printf("你喜歡的顏色是藍(lán)色"); break; default: printf("你沒(méi)有選擇你喜歡的顏色"); } return 0; }

以上實(shí)例輸出結(jié)果為:

請(qǐng)輸入你喜歡的顏色: (1. red, 2. green, 3. blue): 1
你喜歡的顏色是紅色

將整數(shù)轉(zhuǎn)換為枚舉

以下實(shí)例將整數(shù)轉(zhuǎn)換為枚舉:

實(shí)例

#include <stdio.h> #include <stdlib.h> int main() { enum day { saturday, sunday, monday, tuesday, wednesday, thursday, friday } workday; int a = 1; enum day weekend; weekend = ( enum day ) a; //類型轉(zhuǎn)換 //weekend = a; //錯(cuò)誤 printf("weekend:%d",weekend); return 0; }

以上實(shí)例輸出結(jié)果為:

weekend:1