在實際的處理物件中,有許多資訊是由多個不同型別的資料組合在一起進行描述,而且這些不同型別的資料是互相聯絡組成了乙個有機的整體。此時,就要用到一種新的構造型別資料——結構體(structure),簡稱結構。
定義乙個結構型別的一般形式為
struct 結構體名
;
結構體屬於c語言的一種資料型別,與整型、實型相當,不要和結構體變數搞混!!定義型別時不分配空間,只有用它定義變數時才分配空間。
定義結構體變數的三種方式
1.先定義結構體型別再定義變數名(常用方式)
struct 結構體名
; struct 結構體名 變數名;
struct worker
;
struct worker worker1,worker2;
2.在定義型別的同時定義變數
struct 結構體名
變數名;
struct worker
worker1,worker2;
3.直接定義結構型別變數
struct //沒有結構體名
變數名;
struct
worker1,worker2;
乙個結構體變數占用記憶體的實際大小,也可以利用sizeof求出。
sizeof(struct worker)
sizeof(worker1)
結構體的大小由上面決定呢?這個沒有顯示的約定,不同編譯器可能會有不同的結果。
結構體變數名.成員名
worker1.age=26;
結構體型別定義的陣列就是結構體陣列。
1.1定義(方式一)
struct student
;struct student stu[3];
在定義陣列同時初始化,這點和陣列一樣。
1.2引用其中乙個學生的name
stu[1].name
要知道,指標就是位址,那結構體指標就是結構體首位址。
而指標變數是存放位址的容器,結構體指標變數是存放結構體的首位址容器。
2.1定義
struct 結構體名 *結構指標名;
2.2訪問其中乙個結構體元素的成員變數
結構體指標名->成員名
等同於
(*結構體指標名).成員名
嵌入式軟體開發培訓筆記 C高階 結構體與共用體
1 結構體 基本型別int double char float short long等等 復合型別陣列 結構體 指標型別 空型別1 定義結構體,不會在記憶體內給分配空間 struct s1 struct s2 2 定義結構體變數 struct s1 varname 3 define 與typedef...
嵌入式系統高階C語言程式設計
內容介紹 本書主要介紹針對嵌入式系統基於c語言的軟體專案開發流程 較為複雜的c語言程式設計知識與技巧 程式設計風格及除錯習慣,並通過對乙個具體的軟體模組 asix window gui 的分析,介紹分析 的方法以及設計軟體系統需要考慮的各要素。本書以實際專案中的 為例來進行介紹,詳細分析在嵌入式系統...
嵌入式應用開發學習筆記 高階IO
檔案鎖分為建議性鎖和強制性鎖 記錄鎖又可分為讀取鎖和寫入鎖 int fcntl int fd,int cmd int fcntl int fd,int cmd,long arg int fcntl int fd,int cmd,struct flock lock 返回值 成功0,出錯 1,錯誤原因存...