完整的結構體筆記
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...