結構體中級篇

2021-10-10 08:17:42 字數 2447 閱讀 5789

完整的結構體筆記

1.以另乙個結構體變數為資料成員

2.以另乙個結構體指標為資料成員

不常見的寫法1

struct

a//a結構體中直接巢狀乙個b結構體;}

;int

main()

;//可以不使用第二個結構體變數就可以直接賦值

printf

("%d\t%d\n"

, aobject.age, aobject.num)

;struct

a* pa =

&aobject;

//也可以由指標訪問

printf

("%d\t%d\n"

, pa->age, pa->num)

;return0;

}

struct

mmboy;};

intmain()

;printf

("%d\t%d\n"

, mmobject.num, mmobject.boy.age)

;//字首mmobject.boy.age剝洋蔥法

return0;

}

比較常見的寫法,以結構體變數為成員的寫法1

struct

score

;struct

student

;struct

student bug =

;//初始化的兩種方法

struct

student liu =

,"liu"

,1002};

//剝洋蔥

printf

("%d\t%d\t%s\t%d\n"

, liu.stuscore.math,liu.stuscore.english, liu.name, liu.num)

;

2指標方式巢狀

struct

score

;struct

studentinfo

;int

main()

上方一定需要考慮指標是否能充當變數使用

**資料的增刪改查

1.傳參寫法: 區域性變數 盡量使用傳參寫法

2.不傳參寫法: 全域性變數

陣列寫法的侷限性,就是大小問題

structmm;

void

printmm

(struct

mm object)

void

modify

(struct

mm object)

; object = temp;

printmm

(object);}

intmain()

;modify

(mm)

;printmm

(mm)

;return0;

}

輸出時函式改了,main裡面沒有改

解決辦法

要修改實參的值就要傳實參的位址

結構體返回指標問題

//結構體返回指標的問題

structmm*

createmm()

//講指標變成變數

intmain()

只要指標能夠指向乙個結構體變數,申請了記憶體,它就能充當乙個結構體變數使用。

指標變成變數的方法

structmm*

initmm

(const

char

* name,

int age,

int num)

中級篇 優先佇列

優先佇列與一般佇列不同,插入新元素時不是直接將新元素插入到隊尾,而是根據優先順序插入到其所在優先順序的相應位置。優先佇列分為兩種 最大優先佇列和最小優先佇列。故每次取出的是佇列中最大優先順序和最小優先順序。可以根據預設的優先順序排序也可自定義優先順序排序。所需標頭檔案 queue.h 和 funct...

gitlab 漢化 中級篇

檢視版本 cat opt gitlab embedded service gitlab rails version新建乙個資料夾 mkdir gitlab zn cd gitlab zn在本地 clone 倉庫 git clone ll 發現有乙個gitlab資料夾 匯出 patch 用的 diff...

爬蟲pyquery中級篇

一 遍歷 1 點睛 pyquery的選擇結果可能是多個節點,也可能是單個節點,型別都是pyquery型別,並沒有返回像beautiful soup那樣的列表。2 單節點 2.1 html from pyquery import pyquery as pq doc pq html li doc ite...