在 C++ 中,sizeof
是一個運算符,用于計算數據類型或對象所占用的內存大小(以字節為單位)。對于指針變量,sizeof
返回的是指針本身所占用的內存大小,而不是指針所指向的數據類型的大小。
在大多數現代計算機系統中,所有類型的指針都占用相同的內存大小,通常是 4 字節(32 位系統)或 8 字節(64 位系統)。這意味著,無論指針指向哪種數據類型(如 int
、float
、double
等),sizeof
指針的結果都是相同的。
例如,以下代碼展示了 sizeof
指針在不同數據類型上的用法:
#include <iostream>
int main() {
int a = 10;
float b = 2.0f;
double c = 3.14;
int* int_ptr = &a;
float* float_ptr = &b;
double* double_ptr = &c;
std::cout << "Size of int pointer: " << sizeof int_ptr << " byte(s)" << std::endl;
std::cout << "Size of float pointer: " << sizeof float_ptr << " byte(s)" << std::endl;
std::cout << "Size of double pointer: " << sizeof double_ptr << " byte(s)" << std::endl;
return 0;
}
輸出結果將顯示所有指針類型的大小相同:
Size of int pointer: 8 byte(s)
Size of float pointer: 8 byte(s)
Size of double pointer: 8 byte(s)
需要注意的是,sizeof
指針的結果與指針所指向的具體數據類型無關,因為指針只存儲內存地址,而不關心地址中存儲的數據類型。