重拾C語言 結構體和共用體

2021-07-09 22:47:57 字數 1060 閱讀 9785

結構體:不同型別變數的集合

陣列:相同型別變數的集合

struct長度=最後乙個成員大小+最後乙個成員偏移量+填充值;

結構體中的成員的偏移量需是自身長度的整數倍(不夠就填充);

結構體總長度必須是佔記憶體最大的成員的長度的整數倍。

三種方式定義結構體:

1.struct weapon;

struct weapon weapon_1;

2.1.struct weaponweapon_1;

3.struct weapon_1;

第三種定義方式無法再定義下乙個結構體變數了。

結構體初始化:

struct weapon weapon_1=;對應的

引用使用.運算子

定義 struct weapon weapon_2[2]=,};

引用 weapon_2[0].name

結構體陣列初始化 struct *** xx[2] = , };

示例**:

#include

struct weapon;

int main();

printf("%s\n,%d\n",weapon_1.name,++weapon_1.price);

struct weapon *w;

w=&weapon_1;

printf("name=%s\n,name=%s\n",(*w).name,w->name);//w->name weapon_1.name

struct weapon weapon_2[2]=,};

printf("%s\n,%d\n",weapon_2[0].name,weapon_2[1].atk);

struct weapon *p;

p=weapon_2;

printf("%s\n",p->name);//p->name weapon_2[0].name

p++;//weapon_2+1 weapon_2[1]

return 0;

}所占用的記憶體空間是成員中最長的乙個成員位元組數

union data;

int main()

重拾C 教程 結構體

在 c 中,結構體是值型別資料結構。它使得乙個單一變數可以儲存各種資料型別的相關資料。struct關鍵字用於建立結構體。結構體是用來代表乙個記錄。假設您想跟蹤圖書館中書的動態。您可能想跟蹤每本書的以下屬性 為了定義乙個結構體,您必須使用 struct 語句。struct 語句為程式定義了乙個帶有多個...

c語言複習 結構體和共用體

注 本文是對蘇小紅版c語言程式設計第12章的筆記 結構體的定義 結構體的宣告 主要目的 用已有的資料型別定義乙個新的資料型別 struct 結構體名 結構體名成為結構體標籤 e.g.struct student 注意,結構體模板只是宣告了一種資料型別,並未宣告結構體型別的變數 結構體變數的定義 方法...

C 結構體共用體

12 c 中陣列初始化的特點 初始話陣列可以省略等號 初始話內容為空 不可縮窄操作 double people double people int number 不通過,因為浮點到整形為縮窄13 sizeof 計算陣列時候會比strlen 多計算乙個0位元組 14 字串的初始化和賦值,string ...