1. 程式人生 > >C語言:列舉型別

C語言:列舉型別

在列舉型別的定義中列出所有可能的取值,被說明為該列舉型別的變數取值不能超過定義的範圍。應該說明的是,列舉型別是一種基本資料型別,而不是一種構造型別,因為他不可能再分解為任何基本型別。

列舉型別的定義如下:

enum 列舉名

{列舉值表}

例:

enum weekday

{

sun,mou, tue, wed, thu, fri, sat

};

列舉變數的說明:

enum weekday

{

…….

};

enum weekday a, b,c;

enum weekday

{

…….

}a, b, c;

enum

{

           …….

} a, b, c;

列舉型別再使用中的規定

1.列舉值是常量,不是變數。不能在程式中用賦值語句對其進行賦值。例如對列舉weekday的元素做以下賦值:sum=5mon=2sun=mon;都是錯誤的。

2.列舉元素本身由系統定義了一個表示序號的數值,從0開始順序定義為012…。如在weekday中,sun值為0mon值為1…,sat值為6.

例:

#include"stdio.h"

int main()

{

enumweekday

{

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

};

enumweekday a, b, c;

a= sun;

b= mon;

c= tue;

printf("%d,%d,%d",a, b, c);

return0;

}

輸出結果為

0,1,2

3.只能把列舉值賦予列舉變數,不能把元素的數值直接賦予列舉變數。如a=sumb=mon;是正確的。而a=0b=1;是錯誤的。