平時我們使用函式傳遞的引數一般為資料變數,那麼是否可以傳遞函式呢?
答案是不但可以,而且習慣以後,會用上癮的。通過傳遞不同的函式指標,我們可以實現在函式中呼叫不同的子函式。
下面就舉個栗子,說一下函式指標的用法。
有四個函式:
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 在這個型別...