C語言:列舉型別
阿新 • • 發佈:2019-02-16
在列舉型別的定義中列出所有可能的取值,被說明為該列舉型別的變數取值不能超過定義的範圍。應該說明的是,列舉型別是一種基本資料型別,而不是一種構造型別,因為他不可能再分解為任何基本型別。
列舉型別的定義如下:
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=5;mon=2;sun=mon;都是錯誤的。
(2).列舉元素本身由系統定義了一個表示序號的數值,從0開始順序定義為0,1,2…。如在weekday中,sun值為0,mon值為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=sum;b=mon;是正確的。而a=0;b=1;是錯誤的。