1 結構體的定義與使用
數組是一種數據形式,其特點是多個相同類型的元素集合起來;結構體是另一種重要的數據形式,特點是將不同類型的成員組合起來。
數組和結構體形成了兩種風格迥異的聚合方式,通過他們及其相互
組合、嵌套的機制可以構造出復雜的、滿足應用要求的自定義數據
類型。
定義結構體類型:
結構體類型聲明一般放在程序文件開頭,此時這個聲明是全局的。
在全局作用域內,該聲明處處可見,因此同作用域內的所有函數都
可以使用它。
結構體類型聲明也可以放到函數內部,此時這個聲明是局部的。
說明:
1 結構體類型和普通數據類型(如int、char、double等)一樣是類型名稱,而不是該類型的一個實體,因此不會為結構體類型分配存儲空間。
2 結構體類型聲明時成員可以又是是結構體類型。
結構體類型實例化
定義結構體對象稱為結構體類型實例化(instance),實例化會根
據數據類型為結構體對象分配內存單元。
定義結構體對象有兩種形式:
1 先聲明結構體類型再定義對象:
STUDENT a,b;
2 聲明結構體類型的同時定義對象
結構體對象的內存形式:
結構體對象成員引用
2 結構體與數組、指針、函數
結構體與數組
輸入20個學生信息,按成績遞減排序;成績相同時,按學號遞增排序:
結構體與指針
結構體與函數
3 共用體類型
共用體(union)是一種成員共享存儲空間的結構體類型。
共用體類型是抽象的數據類型,因此程序中需要事先聲明具體的共用體類型,一般形式為:
共用體類型名與union一起作為類型名稱,成員列表是該類型數據
元素的集合。 一對大括號{}是成員列表邊界符,後面必須用分號
(;)結束。
結構體與共用體的內存形式是截然不同的。共用體內存長度是所有
成員內存長度的最大值,結構體內存長度是所有成員內存長度之和。可以用sizeof取它們的內存長度進行比較。
由於成員是共享存儲空間的,使用共用體對象成員時有如下特點:
4 枚舉類型
枚舉類型是由用戶自定義的由多個命名枚舉常量構成的類型,其聲
明形式為:
義枚舉類型對象有三種形式:
5 鏈表的概念和分類
鏈表是一種存儲空間能動態進行增長或縮小的數據結構。
鏈表主要用於兩個目的:
1 建立不定長度的數組。
2 鏈表可以在不重新安排整個存儲結構的情況下,方便且迅速地插入和刪除數據元素。
鏈表廣泛地運用於數據管理中。
鏈表的分類:
創建鏈表常用兩種方法:頭插法和尾插法。
銷毀鏈表
6 鏈表的運算
鏈表遍歷
查找結點
插入結點
刪除結點