如何使用C中的浮点指针访问double值

时间:2013-10-11 16:16:03

标签: c pointers

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

假设我有一个浮动指针

float * ptr;

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

由于

3 个答案:

答案 0 :(得分:2)

只需return *ptr;。如果函数的返回类型为double,则float值将自动转换为double

如果您没有立即返回值或将其分配给double但希望将其转换为double以进行其他算术运算,则可以使用(double) *ptr执行此操作。此表达式首先检索float处的ptr,然后将值转换为double

如果ptr的值为float,则无法从中“检索double值”。你无法找回那里没有的东西。您只能检索那里的float并将值(在检索后)转换为double

如果ptr的值是double值,那么您不应该使用指向float的指针指向它,因此应修复代码的其他部分以避免此

答案 1 :(得分:1)

施展它。

ValueInPointer = *(double*)pfloat

答案 2 :(得分:1)

如果您有一个名为float*的{​​{1}},则可以使用。

ptr

请注意,除非*(double*)ptr; 真正指向ptr,否则这不会产生有意义的结果。特别是,double*(double*)ptr无意义。