定義:返回值是乙個指標的函式。
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 函式指標定義 函式型別 指標變數名 形參列表 函式型別 說明函式的返回型別,由於 的...