typedef 函式指標

2021-08-27 10:12:41 字數 1534 閱讀 8989

關於c++

中函式指標的使用(

包含對typedef

用法的討論)

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

//形式1

:返回型別(*

函式名)(

參數列)

char (*pfun)(int);

char glfun(int a)

voidmain()

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

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

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

型,返回值是char

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

第二行定義了乙個函式glfun()

。該函式正好是乙個以int

為引數返回char

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

然後就是main()

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

的位址賦值給變數pfun

。(二)使用typedef

更直觀更方便。

//形式2

:typedef

返回型別(*

新型別)(

參數列)

typedef char (*ptrfun)(int);

char glfun(int a)

ptrfun pfun = glfun;

void main()

typedef

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

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

這種函式以乙個int

為引數並返回char

型別。後面就可以像使用int,char

一樣使用ptrfun

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

,此時就可以像使用形式1

一樣使用這個變數了。

三)在c++

類中使用函式指標。

//形式3

:typedef

返回型別(

類名::*

新型別)(

參數列)

class ca

}; ca ca;

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

ptrfun pfun;

void main()

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

得到的。比如:

ca *pca = new ca;

pca->pfun(2);

delete pca;

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

指標。比如:

類ca有成員變數ptrfunm_pfun;

void ca::lcfun2()

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

或「.*」

的呼叫。

typedef 函式指標

關於c 中函式指標的使用 包含對typedef用法的討論 一 簡單的函式指標的應用。形式1 返回型別 函式名 參數列 char pfun int char glfun int a void main 第一行定義了乙個指標變數pfun。首先我們根據前面提到的 形式1 認識到它是乙個指向某種函式的指標,...

typedef 函式指標

形式1 返回型別 函式名 參數列 cpp view plain copy print?char pfun int char glfun int a void main char pfun int char glfun int a void main 第一行定義了乙個指標變數pfun。首先我們根據前面...

typedef函式指標

typedef int myfun int,int 這種用法一般用在給函式定義別名的時候 上面的例子定義myfun 是乙個函式指標,函式型別是帶兩個int 引數,返回乙個int 在分析這種形式的定義的時候可以用下面的方法 先去掉typedef 和別名,剩下的就是原變數的型別.去掉typedef和my...