C語言函式指標與呼叫

2021-10-04 08:34:05 字數 984 閱讀 3253

平時我們使用函式傳遞的引數一般為資料變數,那麼是否可以傳遞函式呢?

答案是不但可以,而且習慣以後,會用上癮的。通過傳遞不同的函式指標,我們可以實現在函式中呼叫不同的子函式。

下面就舉個栗子,說一下函式指標的用法。

有四個函式:

int add2(int a, int b)

int sub2(int a, int b)

int mul2(int a, int b)

int div2(int a, int b)

下面將演示如何天下一統,通過乙個函式實現對兩個輸入形參的不同運算!

定義乙個函式:

int calculate(int a, int b, int (*fun_t)(int a, int b))

形參 int (*fun_t)(int a, int b),int表示返回值型別,也可寫成

int calculate(int a, int b, int *fun_t(int a, int b))。

在main中使用此函式:

void main(void)

**跟蹤,進入第一次呼叫,形參fun_t值為0x410c,即add2函式位址。

感覺形參int *fun_t(int a, int b)太繁瑣?

我們可以這樣定義函式:

int calculate(int a, int b, int *fun_t(int , int ))

還嫌麻煩?有辦法,別忘了typedef!

typedef int *fun_t(int, int);

int calculate(int a, int b, fun_t operation)

編譯**,執行結果相同。

c語言函式指標與指標函式

include include include using namespace std 1 c語言函式指標 解釋 這是一種很特殊的指標,它的指向是乙個函式的入口 作用 該指標可以接受乙個函式的位址,代表這個函式執行函式的操作 函式指標舉例 下面是乙個函式指標pfunc,它只能指向返回值為float,...

C語言函式指標與指標函式

在大家剛開始學習c語言的時候,總是分不清函式指標和指標函式,就算是知道了它們之間的區別,也不了解它們的使用場景,我寫此部落格幫大家縷一縷,也幫我自己縷一縷 1 函式指標與指標函式的概念以及區別 指標函式 從名字上可以看出,首先它是乙個函式,指標指的是返回值為指標 函式指標 從名字上可以看出,首先他是...

C語言 函式指標與指標函式

寫在前面的話 博主是乙個小菜鳥,並且非常玻璃心!如果文中有什麼問題,請友好地指出來,博主查證後會進行更正,啾咪 每篇文章都是博主現階段的理解,如果理解的更深入的話,博主會不定時更新文章。typedef用於為各種資料型別定義新名字。語法 typedef unsigned char byte 在這個型別...