【发布时间】:2017-11-10 08:28:53
【问题描述】:
我正在尝试将 double 转换为浮点指针,但我不知道正确的方法。
这是我的代码
#include <iostream>
int main(int argc, const char * argv[]) {
// insert code here...
float *f;
double d = 10;
f = reinterpret_cast<float*>(&d);
d = 20;
std::cout << "RESULT : " << *f << std::endl;
return 0;
}
我得到以下结果。
RESULT : 0
Program ended with exit code: 0
如何正确地将双精度转换为浮点指针?
ADD : 我期望得到的结果是 20
【问题讨论】:
-
你不能这样做。您实际上试图解决什么问题?这是XY Problem吗?
-
当您将指向复杂 64 位表示(尾数、指数)的指针转换为指向 不同、32 位表示的指针和然后解释新表示后指向的内存?转换值是一回事,转换指针……完全是另一回事。
-
也就是说,我不明白反对意见。这个问题问得很好,代码是sn-p。难道我们不能再问好问题了吗?
-
我也不明白“不清楚你在问什么”的原因。很清楚他在问什么。
-
@MichaelWalz 问题本身已经包含正确答案。在我看来,真正的问题是为什么输出与预期不同。最初这个问题甚至没有说明预期的输出。