C筆記系列五 結構體 聯合體 列舉

2021-08-17 11:45:14 字數 930 閱讀 6827

struct 結構體名 ;

struct 結構體名 變數名; // 結構體例項化

struct 變數名;

struct employee ;

struct employee el = ; // 結構體初始化

union 聯合體名 ;  // 定義

union 聯合體名 變數名; // 例項化

聯合體與結構體最重要的區別在於其儲存空間的分配方式不同。聯合體是把各個成員放在同一記憶體區域中,儘管各個資料成員占用位元組數不相同,但起始位址都一樣,它用「覆蓋」技術,使多個變數互相覆蓋。因此聯合體變數所占用記憶體長度是其最長資料成員的長度。

enum 列舉名 ; // 定義
在列舉元素列表中以此列出該型別中所有的元素,即列舉常量。若在定義中沒給出這些元素的值,則這些元素依次被自動賦值為0,1,2,…。如:enum color ;定義了列舉型別color,其中red=0,green=1,...,white=5。若給其中某個元素賦值為n,則被賦值元素及其後面元素被賦值為n+i,i為對應元素在被賦值元素後的相對位置。如:enum color ;red=0,green=1,black=0,yellow=1,blue=2,white=3

注意,列舉元素本身是常量,不可在程式中再對其賦值,且每個列舉元素都是乙個確定的整型數值。

enum color ; // 定義

enum color a, b; // 例項化

a = red; // 正確

a = 0; // 錯誤

a = (enum color)0; // 正確

結構體 聯合體 列舉

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...