列舉 聯合的講解

2021-09-27 04:32:34 字數 1850 閱讀 2180

列舉顧名思義就是一一枚舉。 把可能的取值一一枚舉。

列舉型別的定義

enum day

;enum ***

;

以上定義的enum day,enum ***都是列舉型別。

{}中的內容是列舉型別的可能取值,也叫列舉常量 。這些可能取值都是有值的,預設從0開始,依次遞增1,當然在定義的時候也可以賦初值

例如

enum ***

;

列舉的優點

為什麼使用列舉?

我們可以用#define定義變數,為什麼非要用列舉呢?列舉的優點:

增加**的可讀性和維護性

和#define定義的識別符號比較列舉有型別檢查,更加嚴謹。

防止命名汙染

便於除錯

使用方便,一次可以定義多個變數

列舉的使用

#include enum color;

int main()

#include enum color;

void fun(enum color color)

int main()

聯合型別的定義聯合也是一種特殊的自定義型別,這種型別定義的變數也包含一系列成員,特徵是這些成員共用一塊空間(所以叫聯合共同體)

比如:

union un

; union un un;

printf("%d\n", sizeof(un));

聯合的特點

聯合成員是共用一塊記憶體空間的,這樣乙個聯合變數的大小,至少是最大成員的大小

union un

; union un un;

//下面輸出的結果是一樣的嗎?

printf("%d\n", &(un.i));

printf("%d\n", &(un.c));

//下面輸出的結果是什麼?

un.i = 0x11223344;

un.c = 0x55;

printf("%x\n", un.i);

判斷當前機器的大小端

#include#includeint check_system()

; union un un;

un.i = 1;

return un.c;

}int main()

else

system("pause");

return 0;

}

聯合大小的計算比如:

union un1 

; union un2

; //下面輸出的結果是什麼?

位段,列舉,聯合的講解

一 位段 位段 度娘給出的解釋是,c語言允許在乙個結構體中以位為單位來指定其成員所佔記憶體長度,這種以位為單位的成員稱為 位段 或稱 位域 bit field 利用位段能夠用較少的位數儲存資料。位段的宣告和結構體很相似,但不同的是 位段的成員可以是int,unsigned int,signed in...

列舉與聯合

列舉 乙個被命名的整型常數的集合,關鍵字為 enum 列舉的定義與賦值 enum day 關鍵字加列舉名 注意 1.像這樣沒有進行初始化,則代表從第乙個成員起,依次賦值為0,1,2 但當其某個成員賦值 初始化 後,其後邊的成員按加1的規則確定其值。eg enum num 則a 0,b 0,c 1,d...

void的講解 any的講解 聯合型別的講解

1.void的使用空值一般採用 void 來表示,同時void也可以表示變數 也可以表示函式沒有返回值哈 使用了 void 就不能夠使用 return 哈 let sum function void 使用了 void 就不能夠使用 return 哈2.void 可以修飾 underfined 和 n...