在 C++ 中,intptr_t
類型用于表示一個足夠容納對象指針的整數
intptr_t
:
使用 reinterpret_cast
將指針轉換為 intptr_t
。例如:#include <cstdint>
int main() {
int x = 42;
int* ptr = &x;
intptr_t intPtr = reinterpret_cast<intptr_t>(ptr);
}
intptr_t
轉換回指針:
使用 reinterpret_cast
將 intptr_t
轉換回原始指針類型。例如:#include <cstdint>
int main() {
int x = 42;
intptr_t intPtr = reinterpret_cast<intptr_t>(&x);
int* ptr = reinterpret_cast<int*>(intPtr);
}
請注意,這些轉換可能會導致平臺相關的行為。在執行這些操作時,請確保了解目標平臺的內存模型和指針大小。在可移植代碼中,通常應避免直接操作指針值。如果需要將指針與整數進行比較或計算,請考慮使用 uintptr_t
而不是 intptr_t
,因為 uintptr_t
更適合處理無符號整數運算。