2012-02-25 97 views

回答

9

如果函數具有以下特徵:

void foo(int x); 

而且你已經定義了以下指針:

void (*ptr)(int) = foo; 

您可以通過「ptr」執行foo,如下所示:

ptr(12); //actually calls foo(12); 
+2

通過'聲明 - 遵循 - 使用'規則,你也可以把它稱爲'(* ptr)(12)'。函數指針的特殊之處在於,取消引用指針不必訪問指向的值。函數的特殊之處在於它們可以被解除引用併產生相同的值:'(***** ptr)(12)'。 – bames53 2012-02-25 21:10:35

4

以同樣的方式你運行任何其他功能:

foo(); 
2

假設你的函數指針是fp

void (*fp)(int); 

有兩種方法從函數指針調用函數:

fp(3); 

(*fp)(3); 

的兩種方法是等效的,但兩者各有優勢。在第二種形式中,它明確地向讀者說明程序中沒有稱爲fp的功能,但是fp是一個函數指針。

相關問題