C 函式指標

2021-06-20 00:27:12 字數 1710 閱讀 7887

(一)簡單的函式指標的應用。 //

形式1:返回型別

(*函式名

)(參數列)

char(*pfun)(int);

char glfun(inta)

void main()

第一行定義了乙個指標變數

pfun

。首先我們根據前面提到的「形式

1」認識到它是乙個指向某種函式的指標,這種函式引數是乙個

int型,返回值是

char

型別。只有第一句我們還無法使用這個指標,因為我們還未對它進行賦值。

第二行定義了乙個函式

glfun()

。該函式正好是乙個以

int為引數返回

char

的函式。我們要從指標的層次上理解函式——函式的函式名實際上就是乙個指標,函式名指向該函式的**在記憶體中的首位址。

然後就是可愛的

main()

函式了,它的第一句您應該看得懂了——它將函式

glfun

的位址賦值給變數

pfun

。main()

函式的第二句中「

*pfun」

顯然是取

pfun

所指向位址的內容,當然也就是取出了函式

glfun()

的內容,然後給定引數為2。

(二)在

c++類中使用函式指標。 //

形式2:typedef

返回型別(類名

::*新型別

)(參數列)

class ca

}; ca ca;

typedef char(ca::*ptrfun)(int);

ptrfun pfun;

void main()

在這裡,指標的定義與使用都加上了「類限制」或「物件」,用來指明指標指向的函式是那個類的這裡的類物件也可以是使用

new得到的。比如:

ca *pca = newca;

pca->(*pfun)(2);

delete pca;

而且這個類物件指標可以是類內部成員變數,你甚至可以使用

this

指標。比如: 類

ca有成員變數

ptrfun m_pfun;

voidca::lcfun2()

一句話,使用類成員函式指標必須有「

->*」

或「.*」

的呼叫。 (

三)使用

typedef

更直觀更方便。 //

形式3:typedef

返回型別

(*新型別

)(參數列)

typedef char(*ptrfun)(int);

ptrfun pfun;

char glfun(inta)

void main()

typedef

的功能是定義新的型別。第一句就是定義了一種

ptrfun

的型別,並定義這種型別為指向某種函式的指標,這種函式以乙個

int為引數並返回

char

型別。後面就可以像使用

int,char

一樣使用

ptrfun了。

第二行的**便使用這個新型別定義了變數

pfun

,此時就可以像使用形式

1一樣使用這個變數了。

C 指標函式和函式指標

1 指標函式 1 基本概念 指標函式 顧名思義就是帶有指標的函式,即其本質是乙個函式,只不過這種函式返回的是乙個對應型別的位址。2 定義式 type func type type 如 int max int x,int y 3 例子詳解 cpp view plain copy 1.include 2...

c 指標函式和函式指標

函式指標與指標函式 1 函式指標 形式 返回型別 函式名 參數列 一種特殊的指標,它指向函式的入口 定義乙個函式指標p,只能指向返回值為int,形參為兩個int的函式 輸出結果 include stdafx.h include using namespace std int p int,int in...

C 函式指標與指標函式

函式指標 函式名本身代表著函式的位址,因此給函數指標賦值使可以不用加 符號 加也可以!void func int 定義乙個函式 void pf int 定義乙個函式指標 pf func 給函式指標賦值 int f x,y 其中x,y是形式引數,f是函式名,呼叫後返回乙個指向整型資料的位址指標。f x...