将代码声明放入字中(引用操作符和解引用操作符混淆)

putting code declaration into words (reference operator and dereference operator confusion)

本文关键字:操作符 引用 和解 声明 代码      更新时间:2023-10-16

嗨,我是c和c++的初学者,完全被这几行代码弄混了,我不需要知道结果,只是想正确理解第二行,下面是代码

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

据我所知,您将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