C++| 枚舉(enum)
發(fā)布時(shí)間:2023-11-24 13:58:29
在C++中定義變量時(shí),有的時(shí)候一個(gè)變量就有幾種可能的值,就像星期有七種可能的取值,人的性別有兩種可能的值一樣,在c語(yǔ)言中可以將變量的值一一列出來(lái),而且他的范圍只限于列舉出來(lái)的值的范圍內(nèi)取值,我們把這種就叫做C++中的枚舉。
1、enum關(guān)鍵字
enum是C++中的一個(gè)關(guān)鍵字,enum叫枚舉數(shù)據(jù)類型,枚舉數(shù)據(jù)類型描述的是一組數(shù)據(jù)的集合,枚舉型是預(yù)處理指令#define
的替代,枚舉和宏定義其實(shí)非常類似,宏在預(yù)處理階段將名字替換成對(duì)應(yīng)的值,枚舉在編譯階段將名字替換成對(duì)應(yīng)的值,
1、定義枚舉
枚舉數(shù)據(jù)(枚舉常量)是一些特定的標(biāo)識(shí)符,標(biāo)識(shí)符代表什么含義,完全由程序員決定。數(shù)據(jù)枚舉的順序規(guī)定了枚舉數(shù)據(jù)的序號(hào),默認(rèn)從0
開始,依次遞增。
1)先聲明后定義
#include <iostream>
using namespace std;
enum RGB
{
R,G,B
};
int main() {
enum RGB rgb=G;
cout << rgb << endl;
return 0;
}
2)同時(shí)聲明和定義
#include <iostream>
using namespace std;
int main() {
enum RGB
{
R,G,B
} rgb;
rgb=B;
cout << rgb << endl;
return 0;
}
3)直接定義
#include <iostream>
using namespace std;
int main() {
enum
{
R,G,B
} rgb;
rgb=B;
cout << rgb << endl;
return 0;
}
枚舉值默認(rèn)是從0
開始,也可以顯示指定。
例如,
#include <iostream>
using namespace std;
int main() {
enum
{
R=2,G,B
} rgb;
rgb=B;
cout << rgb << endl;
return 0;
}
2、枚舉使用示例
定義星期枚舉類型,并將初始值指定為1
。
例如,
#include <iostream>
using namespace std;
/* 定義枚舉類型 */
enum DAY { MON=1,TUE,WED,THU,FRI,SAT,SUN};
int main()
{
/* 使用枚舉類型聲明變量,再對(duì)枚舉型變量賦值 */
enum DAY yesterday, today, tomorrow;
yesterday = MON;
today = TUE;
tomorrow = WED;
cout << yesterday << " " << today << " " << tomorrow << endl;
return 0;
}
3、枚舉轉(zhuǎn)換
枚舉類型和int
類型可以轉(zhuǎn)換,我們可以轉(zhuǎn)將int
類型轉(zhuǎn)換成枚舉類型。
例如,
#include <iostream>
using namespace std;
enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN };
int main()
{
enum DAY yesterday,today,tomorrow;
yesterday = TUE;
today = (enum DAY) (yesterday + 1);//類型轉(zhuǎn)換
tomorrow = (enum DAY) 30; //類型轉(zhuǎn)換
cout << yesterday << " " << today << " " << tomorrow << endl;
return 0;
}
以上為本次所有分享內(nèi)容