1)指標函式指的是乙個函式返回值為指標型別的函式,本質就是個函式。
型別關鍵字 *函式名(引數列表)
int *fun(int a,int b);
2)函式指標指的是指向函式的指標變數,本質是乙個指標變數。
型別關鍵字 (*函式名)(引數列表)
int (*fun)(int a,int b);
注意:函式指標在使用時與普通指標一樣,需要初始化指向有效位址才能使用,函式指標則指向函式實體的位址,即是函式名稱。
對於函式指標,也可以結合「typedef」關鍵字使用,這樣即可自定義一類新的的函式指標型別,可以用該型別宣告和定義同一類的函式指標。
typedef 型別關鍵字(函式名 *)(函式列表)
typedef int (*fun)(int a,int b);
此時「fun」作為自定義的函式指標,可用來宣告或者定義同一型別的函式指標,如「fun max;」 、「fun min;』」。
3.使用
1)指標函式使用
指標函式的使用和一般函式的使用相同,只是返回值是乙個指標值,即位址。對於指標函式的返回值,需要注意如下幾點。
a.不能返回從棧上分配的記憶體位址,如區域性變數,因為函式結束時,即釋放棧記憶體,此時返回棧上記憶體位址,相當於野指標。
b.可以返回靜態變數(static)、全域性變數的位址、從堆上手動分配(malloc/new)的記憶體位址、通過指標形參所獲得的實參的有效位址。
c.返回從堆上手動分配的記憶體時,注意及時釋放(free/delete),否則導致記憶體洩漏,一般不建議使用這種
函式指標與指標函式
指標函式 指標函式是指函式的返回值型別是乙個指標型別,即本質是乙個函式。我們知道函式都有返回型別 如果不返回值,則為無值型 只不過指標函式返回型別是某一型別的指標。其定義格式如下所示 返回型別識別符號 返回名稱 形式參數列 返回型別可以是任何基本型別和復合型別。返回指標的函式的用途十分廣泛。事實上,...
函式指標與指標函式
函式指標 在程式執行中,函式 是程式的演算法指令部分,它們和陣列一樣也占用儲存空間,都有相應的位址。可以使用指標變數指向陣列的首位址,也可以使用指標變數指向函式 的首位址,指向函式 首位址的指標變數稱為函式指標。1 函式指標定義 函式型別 指標變數名 形參列表 函式型別 說明函式的返回型別,由於 的...
函式指標與指標函式
函式指標 在程式執行中,函式 是程式的演算法指令部分,它們和陣列一樣也占用儲存空間,都有相應的位址。可以使用指標變數指向陣列的首位址,也可以使用指標變數指向函式 的首位址,指向函式 首位址的指標變數稱為函式指標。1 函式指標定義 函式型別 指標變數名 形參列表 函式型別 說明函式的返回型別,由於 的...