枚舉是 C 語(yǔ)言中的一種基本數(shù)據(jù)類型,它可以讓數(shù)據(jù)更簡(jiǎn)潔,更易讀。
枚舉語(yǔ)法定義格式為:
enum枚舉名{枚舉元素1,枚舉元素2,……};
接下來(lái)我們舉個(gè)例子,比如:一星期有 7 天,如果不用枚舉,我們需要使用 #define 來(lái)為每個(gè)整數(shù)定義一個(gè)別名:
這個(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};
沒有指定值的枚舉元素,其值為前一元素加 1。也就說(shuō) spring 的值為 0,summer 的值為 3,autumn 的值為 4,winter 的值為 5
枚舉變量的定義
前面只是聲明了枚舉類型,接下來(lái)我們看看如何定義枚舉變量。
可以通過以下三種方式來(lái)定義枚舉變量
定義枚舉類型,再定義枚舉變量
enum DAY{ MON=1, TUE, WED, THU, FRI, SAT, SUN};enum DAY day;
定義枚舉類型的同時(shí)定義枚舉變量
enum DAY{ MON=1, TUE, WED, THU, FRI, SAT, SUN} day;
省略枚舉名稱,直接定義枚舉變量
enum{ MON=1, TUE, WED, THU, FRI, SAT, SUN} day;
以上實(shí)例輸出結(jié)果為:
3
在C 語(yǔ)言中,枚舉類型是被當(dāng)做 int 或者 unsigned int 類型來(lái)處理的,所以按照 C 語(yǔ)言規(guī)范是沒有辦法遍歷枚舉類型的。
不過在一些特殊的情況下,枚舉類型必須連續(xù)是可以實(shí)現(xiàn)有條件的遍歷。以下實(shí)例使用 for 來(lái)遍歷枚舉的元素:
以上實(shí)例輸出結(jié)果為:
枚舉元素:1枚舉元素:2枚舉元素:3枚舉元素:4枚舉元素:5枚舉元素:6枚舉元素:7
以下枚舉類型不連續(xù),這種枚舉無(wú)法遍歷。
enum{ ENUM_0, ENUM_10 =10, ENUM_11};
枚舉在 switch 中的使用:
以上實(shí)例輸出結(jié)果為:
請(qǐng)輸入你喜歡的顏色:(1. red,2. green,3. blue):1你喜歡的顏色是紅色
將整數(shù)轉(zhuǎn)換為枚舉
以下實(shí)例將整數(shù)轉(zhuǎn)換為枚舉:
以上實(shí)例輸出結(jié)果為:
weekend:1
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7624瀏覽量
139462 -
枚舉
+關(guān)注
關(guān)注
0文章
16瀏覽量
4674
原文標(biāo)題:C語(yǔ)言中的enum(枚舉)
文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
C語(yǔ)言中的基本數(shù)據(jù)類型

技術(shù)干貨驛站 ▏深入理解C語(yǔ)言:基本數(shù)據(jù)類型和變量

C語(yǔ)言基本數(shù)據(jù)類型,變量和常量
C預(yù)處理與C語(yǔ)言基本數(shù)據(jù)類型
C語(yǔ)言中常見的數(shù)據(jù)溢出情況有哪些
單片機(jī)C語(yǔ)言中常用的基本數(shù)據(jù)類型分為哪幾類
單片機(jī)C語(yǔ)言中常用到的關(guān)鍵字及數(shù)據(jù)類型
go語(yǔ)言枚舉類型怎么用
C語(yǔ)言中Rookie級(jí)別數(shù)據(jù)類型基礎(chǔ)知識(shí)、溢出、可移植性
重視變量的數(shù)據(jù)類型

評(píng)論