C語言筆記之結構體篇

2021-09-17 00:24:54 字數 1453 閱讀 2714

1、c語言允許使用者自己建立由不同型別資料組成的組合型的資料結構,稱為結構體。

2、一般形式:

struct 結構體名

//花括號內是該結構體所包括的子項,稱為結構體的成員。

3、型別名 成員名

「成員表列」也稱為「域表」,每乙個成員是結構體中的乙個域。成員名命名規則與變數名相同。

成員可以屬於另乙個結構體型別。

4、定義結構體型別變數

(1)先宣告結構體型別,在定義該型別的變數

結構體型別名 結構體變數名

(2)在宣告型別的同時定義變數

struct 結構體名

變數名表列;

(3)不指定型別名而直接定義結構體型別變數

struct 

變數名表列;

此方法不常見。

5、結構體變數的初始化和引用

(1)在定義結構體變數時可以對它的成員初始化,初始化列表是用花括號括起來的一些常量,這些常量依次賦予結構體變數中的各成員。struct stu b=。.name=b.name,其他未指定初始化數值型預設為0.字元型預設為\0,指標型預設為null。

(2)可以引用結構體變數中成員的值,引用方式為

結構體變數名.成員名

.是成員運算子,它在所有運算子中優先順序最高。

(3)結構體變數的成員可以像普通變數一樣進行各種運算。

(4)同類的結構體變數可以互相賦值。

(5)可以引用結構體變數成員的位址,也可以引用結構體變數的位址。

6、使用結構體陣列

(1)一般形式:

struct 結構體名

陣列名[陣列長度];

或結構體型別 陣列名[陣列長度]

(2)對結構體賦初值是=;

7、結構體指標指向結構體物件的指標變數既可以指向結構體變數,也可以指向結構體陣列中的元素。

(1)c語言允許把(*p).num用p->num代替,->代表乙個箭頭,p->num表示指向的結構體變數中的成員。

->指向運算子

(2)如果p指向乙個結構體變數stu,以下3種用法等價:

stu.成員名=(*p).成員名=p->成員名

9、共同體型別

一般形式:union共用體名

變數表列;

引用方式:與結構體一致。

共用體型別資料的特點

(1)同一記憶體段可以用來存放幾種不同型別的成員,但在每一瞬間只能存放其中乙個成員,而不是同時存放幾個。

(2)可以對共同體變數初始化,但初始化表中只能有乙個常量。

10、使用列舉型別

如果乙個變數只可能有幾個值,則可以使用列舉型別定義

一般形式:enum[列舉名]

11、用typedef宣告新型別名:就是按定義變數的方式,把變數名換上新型別名,並且在最前面加typedef,就宣告了新的型別名代表原來的型別。

(1)用新型別名取代舊型別名

typedef int inter,inter也具有int整型的功能。

C語言筆記 結構體

在習慣複製貼上之後導致現在自己敲程式都成了問題。鏈結構體都不會敲了,於是痛定思痛,寫下這篇筆記,警示後 zi 人 ji 定義 struct 結構體名 一定要有分號,定義本身就是個語句的說例子 struct boo 定義名字是boo的結構體 和定義出一種新的型別差不多 上面這樣就定義出了個結構體,相當...

C語言筆記 結構體

第一種 只對結構體進行宣告 struct 結構體名 struct student 第二種 在宣告型別時同時定義變數 struct 結構體名字 變數名列表 struct student student1,student2 第三種 不指定型別名直接定義結構體型別變數 struct 變數名列表 struc...

C語言筆記 結構體

struct mystruct 結構體名 注意一定要加 這是基本格式,其餘的見 筆記 define crt secure no warnings include include struct student 結構體型別宣告,注意最後一定要加分號 intmain 結構體變數 列印要乙個乙個來 prin...