为什么 C++ 中的 sizeof() 被实现为一个算子?


在 C++ 中,sizeof 不是一个真正的运算符。它仅仅是将等于参数大小的连续内容插入的特殊语法。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

更新于: 2020 年 2 月 11 日

127 次浏览次数

开启你的职业生涯

完成课程认证

立即开始
广告
© . All rights reserved.