在不調用的情況下計算函數:解開謎團
想像:您正在編碼,而不是調用帶括號的函數,您只需列印它的名稱即可。令人驚訝的是,結果總是 1。這種非常規的方法讓您感到困惑,無論是關於 1 還是缺少預期的函數指標。
讓我們深入研究程式碼的複雜度:
#include
using namespace std;
void pr()
{
cout 與您的意圖相反,您實際上並未在 cout
為了增強您的理解,請考慮在列印之前使用 cout
雖然 C 11 提供了一個優雅的解決方案:
template
std::ostream & operator此重載可讓您列印任意數量的函數指針,顯示函數指針的位址及其參數數量等資訊。
所以,您已經知道了:神秘的 1 是這不僅僅是巧合,而是隱式類型轉換的結果。了解這種行為對於避免意外結果和編寫更健壯的程式碼至關重要。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3