枚舉enum、聯合union成員共用一個變數緩衝區 enum是一種基本數據類型,而不是一種構造類型,因為它不能再分解為任何基本類型 有些變數的取值被限定在一個有限的範圍內 枚舉值是常量不是變數,不能再對它賦值 0,1,2,3,4 … enum weekday{sun,mon,tue,wed,thu, ...
枚舉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的成員不可以為靜態、引用,如果是自定型態的話,該自訂型態成員不可以有建構函式、解構函式或是複製指定運運算元。
對一個成員賦值,其他成員的值就不存在了。