假設我有一個指向foo
函數的指針。我現在如何運行這個指向的函數?我該如何運行一個我在C++中有指針的函數?
0
A
回答
9
如果函數具有以下特徵:
void foo(int x);
而且你已經定義了以下指針:
void (*ptr)(int) = foo;
您可以通過「ptr」執行foo,如下所示:
ptr(12); //actually calls foo(12);
4
以同樣的方式你運行任何其他功能:
foo();
2
假設你的函數指針是fp
。
void (*fp)(int);
有兩種方法從函數指針調用函數:
fp(3);
或
(*fp)(3);
的兩種方法是等效的,但兩者各有優勢。在第二種形式中,它明確地向讀者說明程序中沒有稱爲fp
的功能,但是fp
是一個函數指針。
相關問題
- 1. 爲什麼我的指針數組在C中有一個分段函數?
- 2. 如果我有一個void指針,我該如何將一個int放入它?
- 3. 我應該刪除函數中的本地指針嗎? (C++)
- 4. 我該如何初始化一個3級間接指針? C++
- 5. 在函數中引用另一個指針的C指針
- 6. 我的函數應該接受指針還是智能指針?
- 7. C++通過函數指針指向另一個函數指針
- 8. 我該怎麼辦的指針指向一個C++接口
- 9. 我應該使用函數指針嗎? C++和Objective-C
- 10. 當析構函數是私有的時,我應該如何在C++ 11中使用唯一指針?
- 11. 如何寫一個函數指針返回一個函數指針函數?
- 12. 如何聲明一個函數的指針,該函數返回一個指向C/C++中int值的數組的指針?
- 13. 函數指針指向一個函數指針的函數
- 14. 如何在C++中創建一個私有的函數指針數組?
- 15. 如果我有一個特定塊的內存地址的整數版本,我該如何做一個指針?
- 16. 我該如何指向C中函數的開始?
- 17. 如何在C++中創建一個函數指針隊列
- 18. 如何返回一個C++指針在目標c函數
- 19. 如何鍵入一個函數指針,該函數指針將自己的類型的函數作爲參數?
- 20. 函數指針在C++中返回另一個函數指針與地方
- 21. C++如何獲得一個指向lambda函數的void指針?
- 22. C++中函數指針的指針
- 23. 爲什麼我的C++函數有不同的指針參數?
- 24. 我該如何參考一個函數?
- 25. c函數指針反函數指針
- 26. 我應該使用std :: shared指針傳遞一個指針嗎?
- 27. 我們在哪裏可以使用C中的函數指針,函數指針有什麼用處
- 28. 如何在C++中構造一個沒有typedef的複雜函數指針?
- 29. 我如何在一個單獨的函數中釋放malloc'd指針?
- 30. 我如何在C++中聲明一個帶有填充信息的指針?
通過'聲明 - 遵循 - 使用'規則,你也可以把它稱爲'(* ptr)(12)'。函數指針的特殊之處在於,取消引用指針不必訪問指向的值。函數的特殊之處在於它們可以被解除引用併產生相同的值:'(***** ptr)(12)'。 – bames53 2012-02-25 21:10:35