函式指標 與 函式

2021-07-17 03:26:59 字數 806 閱讀 5022

c++ primer 7.10函式指標

241頁

通常,要宣告指向特定型別的函式的指標,可以首先編寫這種函式的原型,然後用(*pf)替換函式名。這樣pf就是這類函式的指標。

如:

double pam(int)

->

double (*pf)(int)

用指標來呼叫被指向的函式。線索來自指標宣告。(*pf)扮演的角色與函式名相同,因此使用(*pf)的時候,只需將它看做函式名即可。

double pam(int);

double (*pf)(int);

pf = pam;

double x = pam(4);

double y = (*pf)(5);

實際上,c++也允許像使用函式名那樣使用pf:

double y =pf(5);
第一種格式雖然不太好看,但它給出了強有力的提示–**正在使用函式指標。

真的是非常棒的語法!為何pf和(*pf)等價呢?一種學派認為,由於pf是函式指標,而(*pf)是函式,因此應將(*pf)()用作函式呼叫。另一種學派認為,由於函式名是指向該函式的指標,指向函式的指標的行為盈餘函式名相似,因此應將pf()用作函式呼叫使用。c++進行了折中–這2種方式都是正確的,或者至少是允許的,雖然它們在邏輯上是互相衝突的。在認為這種折衷粗糙之前,應該想到,容忍邏輯上無法自圓其說的觀點正是人類思維活動的特點。

函式指標與指標函式

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

函式指標與指標函式

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

函式指標與指標函式

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