列舉型別enum初步(很高階的操作呀)

2021-10-01 06:33:03 字數 1911 閱讀 8901

什麼是列舉型別???

列舉型別的誕生,我推測是這樣的:

遠古時期,一群程式猿聚在一起編寫**

為了提高工作效率,每只程式猿只負責一小部分的**編寫

這個程式中有一部分的功能是需要辨識rgb三種顏色

程式猿小m用0表示r,1表示g,2表示b,並且非常迅捷完成了ta的部分,

然而ta的同伴們在看ta的**時,並搞不清楚0,1,2的具體意義

程式猿小m就需要挨個向ta的同伴們解釋,因此感到十分煩躁

小m就想:為什麼我們不能給這些數字起個名字,就叫「r」,「g」,「b」

這樣就方便多了呀

於是,就有了enum

列舉型別長什麼樣???

enum < 列舉型別名 >

例如:

enum day

;enum month

;

在這裡我們注意到了乙個奇怪的潛規則:

這個定義幹了一件什麼事呢???
enum day

;

sun

,mon

,tue

,wed

,thu

,fri

,sat

sun,mon,tue,wed,thu,fri,sat

sun,mo

n,tu

e,we

d,th

u,fr

i,sa

t叫做列舉值

每個列舉值都對應乙個整型值

通常第乙個列舉值對應常量值0,第二個對應1,一次遞增類推

sun=

0,mon=

1,tue=

2,wed=

3,thu=

4,fri=

5,sat=

6

在定義列舉型別時,也可以指定列舉值對應的常量,後續值依次遞增類推

enum day;//

sun=

7,mon=

1,tue=

2,wed=

3,thu=

4,fri=

5,sat=

6

注意

列舉值表中列舉值不能同名,但是可以對應相同的整型常量值

enum test

;//error

enum test

;//okka=3

,b=4

,c=3

,d=1

,e=2

變數宣告方法???

我們在定義乙個enum的時候,實際上是自定義一種嶄新的資料型別

資料型別就需要宣告變數:

enum test tt;

//or

test tt;

使用方法???
enum test

;tt=a;

//okk

//tt=3;

tt=3

;//error!!!

tt=static_cast

(5);

//okk

//tt=5;

//數值不一定要是test中已定義的

簡單說兩句???

歸根結底,列舉型別enum實際上就是乙個數集

所有定義為該型別的變數:

你問我enum的作用?

也許就是提高了**可讀性吧。。。

(感謝前輩程式猿小m /手動狗頭)

列舉 enum 型別的運用

在工作中列舉型別也很常用,但是總是不牢固不知道怎麼取值 首先定義乙個列舉型別 public enum staustype 再去取他的備註值 public static string getstaustype staustype status return s 最後在取值的時候根據型別取值 在取值時不...

c 中的enum列舉型別

如果乙個變數你需要幾種可能存在的值,那麼就可以被定義成為列舉型別。之所以叫列舉就是說將變數或者叫物件可能存在的情況也可以說是可能的值一一例舉出來。舉個例子來說明一吧,為了讓大家更明白一點,比如乙個鉛筆盒中有一支筆,但在沒有開啟之前你並不知道它是什麼筆,可能是鉛筆也可能是鋼筆,這裡有兩種可能,那麼你就...

c列舉型別enum例題 c語言列舉型別的一些例子

c 語言列舉型別的一些例子 注以下全部 的執行環境為 vc 6.0 巨集和列舉的區別 巨集和列舉之間的差別主要在作用的時期和儲存的形式不同,巨集是在預 處理的階段進行替換工作的,它替換 段的文字,程式執行的過程中巨集已不 存在了。而列舉是在程式執行之 b5e2rgbcap 而列舉除后才起作用的,列舉...