在 C++ 中将双精度* 转换为 int*
Casting double* to int* in C++
标题不言自明。我想将类型double *
转换为类型int *
。我意识到我可以使用 C 型铸造(int *)
来做我想做的事,但是有没有办法使用 C++ 型铸造来做这个铸造,即 static_cast
等等?
您可以使用reinterpret_cast
执行此转换:
int* veryUnsafePointer = reinterpret_cast<int*>(myDoublePointer);
请注意,这不会返回所指向double
的整数表示形式;相反,整数的值将取决于double
的二进制表示形式和系统的字节序。
希望这有帮助!
你需要
使用reinterpret_cast<int *>(ptr)
.
我希望你真的知道你在做什么。几乎没有理由做这样的演员表,尤其是当double
和int
的大小可能不同时。
相关文章:
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 是否可以从int转换为enum类类型
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 功能样式转换从 'int' 到 'ItemType' 的匹配转换
- 将 int 数组转换为 std::vector<int*>
- 如何转换 int 变量并附加到常量 wchar_t*
- 类型转换<int>的舍入问题
- 在Objective-C中调用sqlite3数据库时,如何调用和转换int/NSNumber
- 转换 int -> 无符号长 长 是否由标准定义
- 简单的 int 到字符串转换..int to const char* 无效
- 如何将转换 int 除法键入为浮点数
- C++类型转换 int * 到类
- 预期的类型说明符,并且无法在初始化时转换“int*”
- 转换int并将其与char*连接
- 字符串流在转换int型时添加新行
- 转换int为字符串/char c++ /Arduino
- c# P-Invoke:如何转换INT fun(BYTE *bStream, UINT16 *nCount, const
- 类型转换(int**)和int(*)的区别
- 从"int"到"nodeType"的无效转换<int>
- 从无符号int构造对强制转换int的引用