C C 中列舉型別 enum 的使用解惑

2021-06-10 05:31:50 字數 1757 閱讀 8011

列舉型別,顧名思義,「枚」作為量詞,作「個」講,那麼列舉,就是乙個乙個的列舉,如果一件事情能夠被乙個乙個的列舉,那麼它的數量肯定就是有限的,否則是不能被一一枚舉出來的。所以列舉型別即為能被列舉的常量的乙個集合。

在 生活中,列舉的例子隨處可見,比如禮拜幾,那麼就可以作為乙個列舉變數。這個變數所儲存的值,是有限的,且,能被我們所列舉。再比較說,性別。它也可以作 為乙個列舉型別,我們知道,性別也就只有「男」或者「女」,它是可以被我們所列舉的。它能很直觀的表達出我們所定義的事件。

如:定義乙個列舉型別的變數,雖然不知道變數具體是什麼值,但能知道它可能會有哪些值,這樣,這樣,就能對程式中所出現的變數的取值有乙個很好的估量,從而使程式的編寫更加順利。

列舉型別的定義寫結構體的定義相似,其形式為:

列舉的說明與結構和聯合相似, 其形式為:

enum 列舉名 列舉變數;

如果列舉沒有初始化, 即省掉"=整型常數"時, 則從第乙個識別符號開始,  依次

次賦給識別符號0, 1, 2, ...。但當列舉中的某個成員賦值後, 其後的成員按依次

加1的規則確定其值。

例如下列列舉說明後, x1, x2, x3, x4的值分別為0, 1, 2, 3。

enum stringx;

當定義改變成:

enum string x;

則x1=0, x2=0, x3=50, x4=51

注意:1. 列舉中每個成員(識別符號)結束符是",",  不是";", 最後乙個成員可省略

","。

2. 初始化時可以賦負數, 以後的識別符號仍依次加1。

3. 列舉變數只能取列舉說明結構中的某個識別符號常量。

例如:

enum string ;

enum strig x=x3;

此時, 列舉變數x實際上是7。

4.在外部,我們可以對列舉變數進行賦值,不過,得要進行型別轉換。

如果我們不進行型別輪換,即如下所示進行賦值:

x = 3;

是不允許是,如果對x進行賦值,只能對3進行型別轉換.即:

x = (string)3;

那麼這樣就對了.

如果給x賦的不是乙個整形的數,而是乙個字元型的,如:

x = (string)』a』;

那麼這時候x的值並不是字元』a』,而是』a』的ascii碼,我們知道,在列舉型別中,各常量的值只能是整形的,所以在對上例會自動的將』a』轉換成乙個整數值.從記憶體的角度來看來話,其實c/c++中整形和字元型的變數是一樣的,它們之間可以互相轉換.

下面是乙個使用列舉型別的例子.(從網上收集得到)

#include

#include 

using namespace std;

enum day;

//saturday = 0 by default, sunday = 0 as well

void prnt(day day)

// print whether a day is a 'weekend' or a "weekday".

intmain

()// print whether a day is a 'weekend' or a "weekday".

prnt(saturday);

prnt(sunday);

prnt(monday);

prnt(tuesday);

prnt(wednesday);

prnt(thursday);

prnt(friday);

return0;

}

C C 中列舉型別 enum

新手入門 c c 中列舉型別 enum 出處 pconline 2005 02 26 15 47 04 如果乙個變數你需要幾種可能存在的值,那麼就可以被定義成為列舉型別。之所以叫列舉就是說將變數或者叫物件可能存在的情況也可以說是可能的值一一例舉出來。舉個例子來說明一吧,為了讓大家更明白一點,比如乙個...

C C 中列舉型別 enum

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

C C 中列舉型別 enum

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