1. 程式人生 > >C++列舉型別和typedef宣告新的型別名

C++列舉型別和typedef宣告新的型別名

如果一個變數只能有幾種可能的值,可以定義為列舉型別。所謂列舉型別就是把變數的值一一列舉出來,變數的值只能在列舉出來的值的範圍內。

enum weekday{sun,mon,tue,wed,thu,fri,sat};
  • 上面聲明瞭一個列舉型別weekday,花括號裡的稱為列舉元素或列舉常量。表示這個型別的變數只能是以上7個值之一。
  • 在聲明瞭列舉型別後,可以用它來定義變數。
weekday workday,week_end;
  • 列舉元素按常量處理,不能對他們賦值
  • 列舉元素是有值的,其值是一個整數,編譯系統按定義時的順序對他們賦值0,1,2,3.。。。
workday=moon;//把列舉常量賦值給列舉變數workday,其值為1
cout<<workday<<endl;//輸出整數1,而不是字元mon

也可以在宣告列舉型別時自己制定列舉元素的值
enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat};
制定sun為7,mon為1,以後按順序加1
- 列舉值可以用來作比較判斷

if(workday==mon)...
  • 不能把一個整數直接賦值給一個列舉變數
    workday=tue; //正確
    workday=2; //錯誤

    要進行強制型別轉換
workday=(workday)2;

typedef宣告新的型別名

1.

typedef
int INTERGER;

int a;INTERGER a;完全一樣

2.也可以對一個結構體型別宣告一個新的名字

typedef struct
{
int month;
int day;
}DATA;

這樣就可以用DATE定義變數

3.還可以用typedef進一步宣告一個新的型別名,
例如

typedef int NUM[100];//宣告NUM為整型陣列型別,包含100個元素
NUM n;//定義n為包含100個整型元素的陣列