2013-06-19 28 views
2

使用指向函數的指針的一些實際示例和應用程序是什麼?我不明白爲什麼有人需要使用它。什麼是指向一個函數的指針?

感謝

+0

http://stackoverflow.com/questions/840501/how-do-function-pointers-in-c-work/840669#840669其傳遞給'qsort' –

+0

比較功能 – BLUEPIXY

回答

4

兩個主要原因:

1)你可以挑選哪些功能在某些情況下使用。

2)你可以提供一個回調功能到另一個功能(如C標準庫函數qsort需要一個函數指針作爲參數:你寫這個函數自己告訴qsort有關如何比較兩個值)。

0

如果您有一個包含另一個對象的對象(讓我們給它們標註A和B),您可以將指向A中函數的指針傳遞給B對象,並從B中調用A中的函數。稱爲回調,並且被相當頻繁地使用。

0

主要的原因是你可以將函數作爲參數傳遞給其他函數。例如,想象一下你想實現一個forEach()函數,該函數對存儲在數組中的數據進行操作。然後,你需要forEach()函數將數組作爲參數,並且希望將這個函數應用於每個元素。

這是關於我能想到的最簡單的例子,但您可以想象其他情況下將函數傳遞給其他函數可能有用。

另見:https://en.wikipedia.org/wiki/Functional_programming

相關問題