用函式指標變數做函式的引數

2021-07-31 03:57:33 字數 1182 閱讀 8539

有些時候我們無法及時確定函式的處理邏輯,程式需要動態的改變,這時我們可以通過定義函式指標來實現。

舉個��,我們有加法,乘法兩個函式,如果還要乙個除法我們怎麼做,可能我們會想到,這好辦,建立乙個除法的函式,分分鐘搞定。如果客戶還要變怎麼辦?資料還是那些資料,只是函式的功能改變了。那有點太麻煩了。我們定義乙個中間函式,其他函式作為指標引數傳遞進來,這樣就可進行動態的處理了。

#import //加法

int sum(int val)

//over sum

//乘法

int chengfa(int val)

//chengfa over

//中間體

void map(int data,int(*fn)())

//map over

//main

int main(int argc, const char * argv)

return 0;

}//mainover

----------------結果--------

2017-04-24 21:15:38.204146+0800 zhizhenlianxi[1601:141357] 執行加法:

2017-04-24 21:15:38.204358+0800 zhizhenlianxi[1601:141357] 40,

2017-04-24 21:15:38.204412+0800 zhizhenlianxi[1601:141357] 執行乘法

2017-04-24 21:15:38.204429+0800 zhizhenlianxi[1601:141357] 400,

program ended with exit code: 0

-------------------------------

如果我們要增加除法功能,只需要新增乙個除法的函式即可

int chufa(int val)

//chengfa over

----------結果-----

2017-04-24 21:35:46.236714+0800 zhizhenlianxi[1645:159476] 執行除法

2017-04-24 21:35:46.236742+0800 zhizhenlianxi[1645:159476] 1

陣列 指標 變數做函式引數

陣列引數等同與指標引數,會在函式內改變引數值 變數引數 函式內不會改變函式值 include using namespace std 00affe68 void print score int array1,int n 把每門課程的成績 加m分 void add score int porint1,...

用指標做函式引數的好處,

用指標做函式引數的好處,首先要理解函式傳參的過程,函式傳參是複製型的,例如 void modify int a a void main int a 5 modify a printf d a 程式執行完之後,a的值還是5,為什麼呢,因為在執行modify函式的時候,是另外開闢了儲存空間,將a的值複製...

函式指標 函式指標做函式引數

陣列型別如何定義 typedef int myarray 5 這是我定義的陣列型別,這個型別的名字是myarray,它的本質是乙個記憶體固定大小模板 myarray arr arr是乙個陣列 大小為5 型別的變數。可以這樣訪問arr 0 arr 1 arr 2 typedef int myp 5 定...