我们有一些 float x,我们将它转换成 i,但是谁能解释一下首先 &,然后转换,最后 * 是做什么的?
int i = *(int*)&x;
最佳答案
&x
获取指向x
(int*)&x
将指针转换为 int*
,即指向 int
*(int*)&x
取消引用结果指针,读取变量 x
的内存,就好像它是一个 int
。
如果不知道x
的类型,就很难判断代码的用途。最有可能的是,如果 x
是一个 float
,它被用来获取 float
的二进制表示(这不可能仅通过强制转换来完成到 int
,因为它执行 float 到 int 的转换)
关于c - 解释C中的一行代码——指针和强制转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26388043/