C++ 中為什麼要將 sizeof() 實現為一個運算子?


sizeof 不是 C++ 中的真實運算子。它僅僅是一個特殊語法,用於插入一個等於引數大小的持續變數。sizeof 不需要或不具有任何執行時支援。不能對 sizeof 過載,因為內部操作(例如將指標增加到陣列中)隱式地依賴於它。

C 標準規定應將 sizeof 實現為一個運算子。在大多數編譯器中,sizeof 的值在編譯時本身就被一個等於它的常量取代。

示例

#include <iostream>
using namespace std;
int main() {
   cout << "Size of char : " << sizeof(char) << endl;
   cout << "Size of int : " << sizeof(int) << endl;
   cout << "Size of short int : " << sizeof(short int) << endl;
   cout << "Size of long int : " << sizeof(long int) << endl;
   cout << "Size of float : " << sizeof(float) << endl;
   cout << "Size of double : " << sizeof(double) << endl;
   cout << "Size of wchar_t : " << sizeof(wchar_t) << endl;
   return 0;
}

輸出

將產生此輸出 −

Size of char : 1
Size of int : 4
Size of short int : 2
Size of long int : 4
Size of float : 4
Size of double : 8
Size of wchar_t : 4

更新日期:11-2020 年 2 月

127 次瀏覽

開啟您的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.