(五十四)列舉

2021-07-08 14:11:45 字數 2336 閱讀 9511

列舉的使用方法類似結構,但是不需要為每個變數制定變數型別。

列舉的使用範圍,主要是用來給某乙個狀態賦值,例如,星期一到星期日,通過列舉,可以分別賦值1、2、3、4、5、6、7,這樣在使用的時候,可以直接呼叫星期x這個名字,便自動呼叫相應的變數。

列舉的格式為:

enum 列舉名;

上**:

#include int main()

; //宣告列舉,其中第乙個和第二個是預設的,第三個賦值5,第四個預設,第五個賦值6(和第四個同值),第六個預設,第七個預設

cout << "a1st=" << a1st << endl; //輸出列舉第乙個成員

cout << "a2nd=" << a2nd << endl; //輸出列舉第二個成員

cout << "a3rd=" << a3rd << endl; //輸出列舉第三個成員

cout << "a4th=" << a4th << endl; //輸出列舉第四個成員

cout << "a5th=" << a5th << endl; //輸出列舉第五個成員

cout << "a6th=" << a6th << endl; //輸出列舉第六個成員

cout << "a7th=" << a7th << endl; //輸出列舉第七個成員

bi abc; //宣告abc為列舉bi型別的乙個變數——即bi是型別名(列舉),abc是變數

abc = a5th; //給變數abc賦值,值只能為列舉bi內的成員,或者列舉bi取值範圍內的值(存疑)

cout << "abc = " << abc << endl;

abc = bi(8); //再次給變數abc賦值,值為列舉取值範圍內的值8

cout << "abc = bi(8) = " << abc << endl;

//教程上說,給被列舉型別宣告的變數取值時,只能包含取值列舉成員最大值的2的n次冪-1 的值。

//但經過實踐測試,假如abc=bi(2000);這樣遠超於列舉bi最大值8所處的2的n次冪-1的最大範圍,但依然能顯示。

//因此,存在一定問題

//abc = 5; 型別為列舉bi的變數abc,不能被直接取值為5,必須為列舉範圍內如bi(數值)這樣的值

//cout << "abc = 5 =" << abc << endl;

int aa = 1; //宣告並初始化整型int的變數aa的值為1

aa = aa + abc; //變數aa=1+型別為列舉bi的變數abc的值

cout << "aa = 1 + abc = " << aa << endl;

aa = a4th + a5th; //變數aa=列舉成員a4th和a5th的值之和

cout << "aa = a4th + a5th = " << aa << endl;

system("pause");

return 0;

}

輸出:

a1st=0

a2nd=1

a3rd=5

a4th=6

a5th=6

a6th=7

a7th=8

abc = 6

abc = bi(8) = 8

aa = 1 + abc = 9

aa = a4th + a5th = 12

列舉的特點:

①在列舉的大括號裡,填寫成員名,可不填寫值(將自動獲取預設值);

②若在宣告的時候,不給列舉的成員賦值,在第乙個成員的預設值為0,後面的為前乙個的值加1;

③在賦值的時候,列舉的成員的值,可以相同,可以不同,可以後面比前面大,也能小;

④無需給每個列舉的成員賦值,未賦值的成員,其值為前乙個成員的值加1;

⑤不能在宣告之後,再次給列舉的成員賦值——只能在宣告的時候同時賦值;

⑥列舉bi作為型別名時,其變數只能通過列舉bi來賦值,不能被直接賦值,例如abc = bi(8);或abc = a5th;是可行的,但是abc = 5不可行的;

⑦列舉bi作為型別名時,其變數不能為列舉相加(或相減相乘)的算數結果。例如:abc = a4th + a5th;或abc = bi(4) + bi(5);是不可行的,有其他整型的數字參與在內,也是不可行的。例如:abc = a4th + 4;

⑧當int或者其他整型、浮點型別作為型別名時,其變數可以是列舉成員或者列舉範圍值的算數結果。例如:double aabc = a4th + 4;是可行的。

⑨按照說明,列舉有最大取值範圍,但實際操作下,例如abc=bi

(1000);

這樣的也是可以輸出結果1000的,這是為什麼?

(五十四)列舉

列舉的使用方法類似結構,但是不需要為每個變數制定變數型別。列舉的使用範圍,主要是用來給某乙個狀態賦值,例如,星期一到星期日,通過列舉,可以分別賦值1 2 3 4 5 6 7,這樣在使用的時候,可以直接呼叫星期x這個名字,便自動呼叫相應的變數。列舉的格式為 enum 列舉名 上 include int...

CUDA學習(五十四)

cooperative groups 介紹 cooperative groups 是對cuda 9中引入的cuda程式設計模型的擴充套件,用於組織通訊線程組。合作組允許開發人員表達執行緒通訊的粒度,幫助他們表達更豐富,更高效的並行分解。歷史上,cuda程式設計模型為同步協作執行緒提供了乙個簡單的構造...

安全駕駛 試駕 五十四

關於試駕,我談談自己的看法 1 不要輕易試駕,有些朋友,喜歡體驗不同車型,有試駕活動就參與,甚至不買車也去4s 店裡要求試駕,的確很過癮,但是風險也很大,因為多數試駕車只購買了交強險。有個小木匠,剛拿駕照,想去買輛江淮轎車,試駕時衝入了車輛展廳,他的積蓄賠償車輛損失還不夠!2 據統計,有6 的事故,...