枚舉、聯合
阿新 • • 發佈:2017-07-15
復制 nio 基本類 範圍 return 強制 其中 left 賦值
枚舉enum、聯合union成員共用一個變量緩沖區
enum是一種基本數據類型,而不是一種構造類型,因為它不能再分解為任何基本類型
有些變量的取值被限定在一個有限的範圍內
枚舉值是常量不是變量,不能再對它賦值
0,1,2,3,4 …
enum weekday{sun,mon,tue,wed,thu,fri,sat};
weekday a, b;
或
enum weekday{sun,mon,tue,wed,thu,fri,sat}a,b;
或
enum {sun,mon,tue,wed,thu,fri,sat}a,b;
只能把枚舉值賦予枚舉變量,不能把元素的數值直接賦予枚舉變量。如一定要把數值賦予枚舉變量,則必須用強制類型轉換。
a=(enum weekday)2; a = (weekday)2;
即 a=tue;
inline week operator++( week &rs, int ) { //重載後++ a++時還需判斷是否超出範圍
week oldWeek = rs;
rs = (week)(rs + 1);
return oldWeek;
}
union 所有成員共用一個空間,並且同一時間只能儲存其中一個成員變量的值
union foo
{
int I;
char c;
double k;
}
union foo bar; 8個字節
{char s[10]; int a; } 10、 4 所以占12個字節
union的成員不可以為靜態、引用,如果是自定型態的話,該自訂型態成員不可以有建構函式、解構函式或是復制指定運算子。
對一個成員賦值,其他成員的值就不存在了。
枚舉、聯合