C 中結構體 聯合體 列舉的區別

2021-08-28 03:22:32 字數 511 閱讀 3825

聯合體與結構體是很容易混淆的概念,兩者無論是宣告、定義還是物件的方式都很相似.然而這兩個東西的概念和作用實際千差萬別.

舉個例子:

typedef

structa;

typedef

unionu;

sizeof(a)=8,而sizeof(u)的值也是8(不是4+8);

原因分析:(即結構體和聯合體的區別)

結構體會為每乙個變數申請一塊記憶體;

聯合體是所有變數共用一塊記憶體,當然選佔記憶體最大變數的記憶體;

我是這樣理解的:聯合體相當於聯合國,世界上國家很多,但聯合國只能有乙個國家的人來擔任。結構體是一整個世界,什麼國家都能包含其中。

列舉:列舉在c/c++/c#中,是乙個被命名的整型常數的集合,列舉在日常生活中很常見。

例如表示星期的sunday, monday, tuesday, wednesday, thursday, friday,

saturday, 就是乙個列舉。

結構體 聯合體 列舉

1 結構體struct 結構體的作用 在網路協議 通訊控制 嵌入式系統的c c 程式設計中,我們要傳送的不是簡單的位元組流 char型陣列 二是多種資料組合起來的乙個整體,其表現形式是乙個結構體。使用struct的注意事項 1 下面看乙個題目 結果 6 12 這裡涉及到結構體的記憶體對齊方式。1 關...

結構體 聯合體 列舉

結構體 1.宣告乙個結構體型別的一般形式為 struct 結構體名 成員表列 如 struct student 表示可選項 注 宣告不是定義,故不可對成員列表中的成員進行初始化。定義別名 方法一 如 struct 結構體名 typedef struct 結構體名 別名 方法二 如 typedef s...

C 結構體 聯合體

結構體是特殊形態的類,與類的區別 結構體的預設訪問許可權是public,也就是說當你建立資料成員的時候,預設是屬於public類,存在的主要原因 與c語言保持相容。結構體 struct 學生資訊 include include include using namespace std struct s...