在 C++ 中,sizeof
是一個運算符,用于計算數據類型或對象所占用的內存大小(以字節為單位)。對于指針類型,sizeof
返回的是指針本身所占用的內存大小,而不是指針所指向的數據類型的大小。
在不同平臺上,sizeof
指針的表現可能會有所不同,因為指針的大小取決于底層硬件和編譯器的實現。在 32 位系統上,指針通常占用 4 個字節(32 位),而在 64 位系統上,指針通常占用 8 個字節(64 位)。
以下是一個簡單的 C++ 代碼示例,演示了如何在不同平臺上使用 sizeof
指針:
#include <iostream>
int main() {
std::cout << "Size of pointer: " << sizeof(void*) << " byte(s)" << std::endl;
return 0;
}
在這個示例中,sizeof(void*)
計算的是 void*
類型指針的大小,void*
類型指針可以指向任何數據類型的對象。在不同的平臺上運行這個程序,可能會輸出不同的結果,例如:
在 32 位系統上運行:
Size of pointer: 4 byte(s)
在 64 位系統上運行:
Size of pointer: 8 byte(s)
需要注意的是,盡管指針的大小在不同平臺上可能會有所不同,但指針所指向的數據類型的大小是相同的。例如,在 32 位和 64 位系統上,int
類型的大小都是 4 個字節。