将代码声明放入单词(引用运算符和解引用运算符混淆)

时间:2014-08-21 01:40:29

标签: c++ c pointers reference dereference

你好我是c和c ++的初学者并且完全被这些代码行弄糊涂了,我不需要知道结果,只是想正确理解第二行,以下是代码< / p>

float f = 7.0;
short s = * (short * )&f;

1 个答案:

答案 0 :(得分:0)

据我所知,你将float的前16位重新解释为short。

会发生什么:首先获取浮点数的地址,然后将指针转换为short*指针,这样就可以一次取16位而不是32 }。最后,查询指针的值。

由于7.0表示为(http://www.h-schmidt.net/FloatConverter/IEEE754.html):

00000000 00000000 01110000 01000000

结果为0,如果您选择第二个短片,则为16 496

例如,如果您使用:

float f = 7.0068;

然后结果将是:14 261