在C++中将double*转换为int*

GIL*_*ESH 2 c++ types pointers casting

标题非常自我解释.我想将一个类型double *转换为一个类型int *.我意识到我可以使用C型(int *)转换来做我想要的,但是有没有办法使用C++类型转换static_cast等进行此类转换?

tem*_*def 5

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

int* veryUnsafePointer = reinterpret_cast<int*>(myDoublePointer);
Run Code Online (Sandbox Code Playgroud)

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

希望这可以帮助!

  • 所以你似乎想要阅读`double`的内部表示.你知道`double`最有可能大于`int`吗?(在大多数系统上8对4字节) (2认同)

Mar*_*som 5

你需要使用reinterpret_cast<int *>(ptr).

我希望你真的知道你在做什么.没有理由做这样的演员,特别是当它可能是一个double和一个int不同的大小.