在 C++ 中,intptr_t
类型用于表示一个足够容纳对象指针的整数
- 将指针转换为
intptr_t
: 使用reinterpret_cast
将指针转换为intptr_t
。例如:
#includeint main() { int x = 42; int* ptr = &x; intptr_t intPtr = reinterpret_cast (ptr); }
- 将
intptr_t
转换回指针: 使用reinterpret_cast
将intptr_t
转换回原始指针类型。例如:
#includeint main() { int x = 42; intptr_t intPtr = reinterpret_cast (&x); int* ptr = reinterpret_cast (intPtr); }
请注意,这些转换可能会导致平台相关的行为。在执行这些操作时,请确保了解目标平台的内存模型和指针大小。在可移植代码中,通常应避免直接操作指针值。如果需要将指针与整数进行比较或计算,请考虑使用 uintptr_t
而不是 intptr_t
,因为 uintptr_t
更适合处理无符号整数运算。