C C 簡單的函式指標的應用

2021-10-05 20:02:52 字數 1656 閱讀 1335

形式1:返回型別(*函式名)(參數列)

char

(*pfun)

(int);

char

glfun

(int a)

void

main()

第一行定義了乙個指標變數pfun。首先我們根據前面提到的「形式1」認識到它是乙個指向某種函式的指標,這種函式引數是乙個int型,返回值是char型別。只有第一句我們還無法使用這個指標,因為我們還未對它進行賦值。

第二行定義了乙個函式glfun()。該函式正好是乙個以int為引數返回char的函式。我們要從指標的層次上理解函式——函式的函式名實際上就是乙個指標,函式名指向該函式的**在記憶體中的首位址

然後就是main()函式了,它的第一句您應該看得懂了——它將函式glfun的位址賦值給變數pfun。main()函式的第二句中「*pfun」顯然是取pfun所指向位址的內容,當然也就是取出了函式glfun()的內容,然後給定引數為2。

形式1:typedef 返回型別(*新型別)(參數列)

typedef

char

(*ptrfun)

(int);

ptrfun pfun;

char

glfun

(int a)

void

main()

typedef的功能是定義新的型別。第一句就是定義了一種ptrfun的型別,並定義這種型別為指向某種函式的指標,這種函式以乙個int為引數並返回char型別。後面就可以像使用int,char一樣使用ptrfun了。

第二行的**便使用這個新型別定義了變數pfun,此時就可以像使用形式1一樣使用這個變數了。

#include

#include

typedef

int(

*fp_calc)

(int

,int);

//定義乙個函式指標型別

intadd

(int a,

int b)

intsub

(int a,

int b)

intmul

(int a,

int b)

intdiv

(int a,

int b)

//定義乙個函式,引數為op,返回乙個指標,該指標型別為擁有兩個int引數、

//返回型別為int的函式指標。它的作用是根據操作符返回相應函式的位址

fp_calc calc_func

(char op)

return

null;}

//s_calc_func為函式,它的引數是 op,

//返回值為乙個擁有兩個int引數、返回型別為int的函式指標

int(

*s_calc_func

(char op))(

int,

int)

//終端使用者直接呼叫的函式,該函式接收兩個int整數,

//和乙個算術運算子,返回兩數的運算結果

intcalc

(int a,

int b,

char op)

void

main()

C C 指標的概念及簡單應用

類似定義變數的形式,資料型別包含 int char float等 型別名 指標變數名 定義乙個變數value int value 150 定義乙個指標pv int pv value 注 定義指標時應對指標進行初始化,原則上不允許int pv 這樣的指標出現。如果沒有想好,可以將指標定義為空指標cha...

C C 的函式指標

病人 醫生,我折騰了許久,無法理解函式指標。中醫 能意識到自己不理解,不錯。那麼你說說你目前的理解。函式指標是什麼?病人 函式指標是指向函式的指標。中醫 那麼函式是什麼?病人 函式就是函式。中醫 不是指向函式的指標?病人 自然不是。中醫 那函式怎麼可以賦值給函式指標?難道int可以賦值給int 病人...

C C 函式指標,指標函式的用法,用處

先看函式指標 int func2 int x 宣告乙個函式 int q2 int x 宣告乙個函式指標 q2 func2 將func函式的首位址賦給指標f int c q2 3 3可以為任意實參 上面4句基本說明了函式指標的用法 函式指標是指向函式的指標,確切的說,是指向特定型別函式的指標 函式與函...