在 C++ 中将双精度* 转换为 int*

Casting double* to int* in C++

本文关键字:转换 int 双精度 C++      更新时间:2023-10-16

标题不言自明。我想将类型double *转换为类型int *。我意识到我可以使用 C 型铸造(int *)来做我想做的事,但是有没有办法使用 C++ 型铸造来做这个铸造,即 static_cast等等?

您可以使用reinterpret_cast执行此转换:

int* veryUnsafePointer = reinterpret_cast<int*>(myDoublePointer);

请注意,这不会返回所指向double的整数表示形式;相反,整数的值将取决于double的二进制表示形式和系统的字节序。

希望这有帮助!

你需要

使用reinterpret_cast<int *>(ptr) .

我希望你真的知道你在做什么。几乎没有理由做这样的演员表,尤其是当doubleint的大小可能不同时。