-3

如何使用 C 中的浮点指针访问双精度值并使用单个语句返回值?

假设我有一个浮点指针

浮动 *ptr;

我希望只使用一个语句来检索一个双精度值。现在的问题是浮点指针将能够在单个语句中返回 32 位值,而我希望返回 64 位值。这是一个概念问题,而不是一个实际问题。

谢谢

4

3 回答 3

2

投吧。

ValueInPointer = *(double*)pfloat
于 2013-10-11T16:19:39.653 回答
2

简直了return *ptr;。如果函数的返回类型是doublefloat值会自动转换为double

如果您没有立即返回值或将其分配给 adouble但希望将其转换为 adouble以进行额外的算术运算,您可以使用(double) *ptr. 此表达式首先检索floatat ptr,然后将值转换为 a double

如果 at 的值ptr是一个float值,则无法从中“检索一个double值”。您无法检索不存在的内容。您只能检索float那里的值并将值(在检索到之后)转换为double.

如果 at 的值ptr是一个double值,那么您不应该用指向它的指针指向它float,因此应该修复代码的其他部分以避免这种情况。

于 2013-10-11T16:21:40.337 回答
1

如果你有一个float*被调用的ptr,你可以使用。

*(double*)ptr;

ptr请注意,除非确实指向 a ,否则这不会产生有意义的结果double。特别是,要么*(double*)ptr*ptr将没有意义。

于 2013-10-11T16:22:24.020 回答