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