函式指標與指標函式分析,自己絕對可以搞定!

2021-09-01 06:16:23 字數 1488 閱讀 2909

定義:返回值是乙個指標的函式。

int * ptr_fun(int a, int b);

指標函式的本質是乙個函式,它與一般的函式的區別就是它的返回值是乙個指標。

舉乙個例子:

函式定義:

int * prt_fun(int a,int b)

int c  = 0;

stctic  c = a + b;

printf("&c = %p\n", &c);

return &c;

該函式返回的是c的位址.

呼叫:int * p = null;

p = prt_fun(3,4);

printf("p = %p\n",p);

#includeint * prt_fun(int a,int b);

int main(int argc, const char * argv)

int * prt_fun(int a,int b)

結果:

兩個位址確實是一樣的,在這個例子中,我又發現自己的記憶體四區的理解也使用上了,因為函式是在棧區的,所以在函式執行完畢後,對應的空間將會釋放,所以需要將c的位址存放在常量區才是安全的,所以加上幾個關鍵字static,就可以使c的生命週期變為整個程式存在過程,試著將static去掉,發現會出現如下的警告和不是預期的結果,出現這種現象的根源就是沒有使用static,此時的c是放在了棧區。

定義:指向函式的指標。

int * (p)(int a, int b);

函式指標的本質是乙個指標,它與一般的指標的區別就是它是乙個指向函式指標,本質上函式名就是乙個指標。

int (*p)(int a,int b); 

//定義了乙個函式指標,指標的名字是p

int b = 2;

p = add;

//將指標指向了函式

原始碼:

/*函式指標*/

#include int add(int a,int b)

int main(int argc, const char *argv)

以上就是函式指標與指標函式的區別,可以完美地理解了!

#define _crt_secure_no_warnings

#include #include #include int main(void)

函式指標與指標函式

指標函式 指標函式是指函式的返回值型別是乙個指標型別,即本質是乙個函式。我們知道函式都有返回型別 如果不返回值,則為無值型 只不過指標函式返回型別是某一型別的指標。其定義格式如下所示 返回型別識別符號 返回名稱 形式參數列 返回型別可以是任何基本型別和復合型別。返回指標的函式的用途十分廣泛。事實上,...

函式指標與指標函式

函式指標 在程式執行中,函式 是程式的演算法指令部分,它們和陣列一樣也占用儲存空間,都有相應的位址。可以使用指標變數指向陣列的首位址,也可以使用指標變數指向函式 的首位址,指向函式 首位址的指標變數稱為函式指標。1 函式指標定義 函式型別 指標變數名 形參列表 函式型別 說明函式的返回型別,由於 的...

函式指標與指標函式

函式指標 在程式執行中,函式 是程式的演算法指令部分,它們和陣列一樣也占用儲存空間,都有相應的位址。可以使用指標變數指向陣列的首位址,也可以使用指標變數指向函式 的首位址,指向函式 首位址的指標變數稱為函式指標。1 函式指標定義 函式型別 指標變數名 形參列表 函式型別 說明函式的返回型別,由於 的...