」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼在 C++ 中列印函數名稱會導致“1”?

為什麼在 C++ 中列印函數名稱會導致“1”?

發佈於2024-11-08
瀏覽:736

Why Does Printing a Function Name in C   Result in \

在不調用的情況下計算函數:解開謎團

想像:您正在編碼,而不是調用帶括號的函數,您只需列印它的名稱即可。令人驚訝的是,結果總是 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