繁体   English   中英

将代码声明变成单词(引用运算符和取消引用运算符的混淆)

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

嗨,我是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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM