」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼使用不帶括號的函數指標時“cout”列印“1”?

為什麼使用不帶括號的函數指標時“cout”列印“1”?

發佈於2024-11-07
瀏覽:188

Why Does \

為什麼「cout a function without call it (not f() but f;). Print 1 Always?」

在此程式碼中,程式碼嘗試在不使用括號的情況下「呼叫」名為pr 的函數。然而,這實際上並不是呼叫該函數。相反,它將函數指標傳遞給 cout 函數。當函數指標隱式轉換為 bool 值時,其計算結果為 true。由於 true 相當於 C 中的 1,因此輸出始終為 1。

為了澄清,所提供程式碼中的以下幾行沒有呼叫 pr 函數:

pr;
cout 

要真正呼叫pr 函數,您需要使用像pr().

這樣的括號行為來源於函數指標可以隱式轉換為bool 的事實。在 C 11 中,可以重載函數指標的運算子

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3