代码点读机 / C++ / reinterpret_cast

reinterpret_cast C++ · 关键字

低级强制类型转换运算符,把对象的位模式重新解释成另一种类型;几乎不做任何安全检查,极易出错。

怎么用

reinterpret_cast<目标类型>(表达式)

小例子

#include <cstdint>
int x = 42;
std::uintptr_t addr = reinterpret_cast<std::uintptr_t>(&x);
int* q = reinterpret_cast<int*>(addr);
std::cout << *q;

运行结果

42

提醒:通常只在和硬件地址、序列化二进制数据打交道时才用;不要用来替代 static_cast

官方文档:https://en.cppreference.com/w/cpp/language/reinterpret_cast

在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← C++全部词条