c c 函式指標詳解

2021-08-02 19:30:00 字數 1954 閱讀 2087

今天我們要介紹的是函式指標。內容由以下3部分組成:

① 函式指標的概念,為了面試時能夠說出來。

② 函式指標的用法 當然是為工作用到嘍

③ 函式指標的例項,用一些練習來加深印象。

④經典面試題:函式指標和指標函式的區別

好 開始!

①函式指標的概念:

1.1 函式指標: 是指向函式的指標變數

在程式執行中,函式是程式演算法指令部分,他們和陣列一樣也占用記憶體空間,也都有相應的位址。我們程式設計師可以使用指標變數指向陣列的首位址,同樣,也可以使用指標變數指向函式**的首位址, 指向函式**首位址的指標變數,稱為函式指標。

1.2 函式指標有兩個用途:呼叫函式和做函式的引數。

② 函式指標的用法

2.1 用法:返回值型別 ( * 指標變數名) ([形參列表]);

注1:「返回值型別」說明函式的返回型別,「(指標變數名 )」中的括號不能省,括號改變了運算子的優先順序。若省略整體則成為乙個函式說明,說明了乙個返回的資料型別是指標的函式,後面的「形參列表」表示指標變數指向的函式所帶的引數列表。例如:

//比較兩個string物件的長度

bool lengthcompare(string ch1 , string ch2);

該函式的型別是bool ( string , string ) 。要想宣告乙個可以指向該函式的指標,只需要替換函式名字即可。

// pf 指向乙個函式,該函式的引數是兩個 string的引用,返回值是bool型別。

bool (*pf)(string ch1 , string ch2 ); //宣告了乙個函式指標

注2:函式括號中的形參可有可無,視情況而定。③ 函式指標的例項下面的簡單例子說明函式指標呼叫的方法。

#include

int max(int

x,int

y)int main()

輸入5 , 2 結果如下:

此外 在上個例子中

ptr = max ; 也可以寫成 ptr = & max ;

等價的賦值語句,取位址符是可選的。

此外,我們還能直接使用指向函式的指標來呼叫該函式,無需提前解引用指標。

int d1 = ptr( 1 , 2 );  //呼叫max函式

int d2 = (*ptr)( 1 , 2 );//乙個等價的呼叫

int d3 = max(1 , 2 ); //另乙個等價的呼叫

④函式指標和指標函式的區別關鍵考點:

指標函式的概念;

指標函式的使用。

int &test(x,y);
#include

char *ch(char *str1 ,char *str2)

dowhile (*str1!=null);

return p;

}int main()

結果輸出 」 hello6789」

上面**,函式char *ch()表示的就是乙個返回字元型指標的函式。

答案:函式指標是乙個指向函式的指標。他的本質是乙個指標,而指標函式只是說明他是乙個返回值為指標的函式,它本質是乙個函式,

詳解C C 函式指標宣告

要理解乙個c程式,僅僅理解組成該程式的符號是不夠的。程式設計師還必須理解這些符號是如何組合成宣告 表示式 語句和程式的。我們先來看看下面的乙個語句 1 void 0 這是當計算機啟動時,硬體將呼叫首位址為0位置的子例程。像這樣的表示式恐怕會令每個c c 程式設計師的內心都 不寒而慄 吧。然而,完全不...

詳解C C 函式指標宣告

要理解乙個c程式,僅僅理解組成該程式的符號是不夠的。程式設計師還必須理解這些符號是如何組合成宣告 表示式 語句和程式的。我們先來看看下面的乙個語句 1 void 0 這是當計算機啟動時,硬體將呼叫首位址為0位置的子例程。像這樣的表示式恐怕會令每個c c 程式設計師的內心都 不寒而慄 吧。然而,完全不...

詳解C C 函式指標宣告

要理解乙個c程式,僅僅理解組成該程式的符號是不夠的。程式設計師還必須理解這些符號是如何組合成宣告 表示式 語句和程式的。我們先來看看下面的乙個語句 1 void 0 這是當計算機啟動時,硬體將呼叫首位址為0位置的子例程。像這樣的表示式恐怕會令每個c c 程式設計師的內心都 不寒而慄 吧。然而,完全不...