天天看點

C基礎08天--指針和函數

指針與函數
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、    根據業務需要或具體情況決定該傳入哪一個函數指針。