指針與函數
1、指針與函數的傳回值
2、指針和函數的參數
函數傳參的兩種方式:
傳值和傳址
如果是傳值,在被調函數内部不能改變主調函數變量的值。
如果是傳址,在被調函數内部可以通過位址來操作外部的變量。
3、函數指針
指向函數的指針
函數名稱本身就是一個函數指針。
比如:int (*p_func)(int)
第一個int是傳回值,p_func函數指針的名稱,(*p_func) 考慮到比對優先級問題,要加括号,第二個int是函數指針對應函數的參數。
函數指針的意義,從記憶體中找到需要執行的代碼對應的首位址,
注意,函數指針的類型要與其指向的函數原型相吻合
通過函數申請與釋放記憶體
1、 malloc
2、 realloc
3、 calloc 申請記憶體後幫助我們初始化記憶體的内容,其餘和malloc功能完全一樣
4、 free 釋放記憶體
應用:
回調函數
實作回調函數機制的流程:
A、 首先需要一個主調函數,他至少要有一個參數是函數指針。
B、 實作回調函數,回調函數的 函數原型必須要和主調函數中函數指針的類型相比對
C、 根據業務需要或具體情況決定該傳入哪一個函數指針。