【发布时间】:2012-07-19 21:25:59
【问题描述】:
我是 C 编程语言的新手,我想问一个问题。
这里的整数 i 被转换为浮点数,然后 f(不知何故)成功代表 5.0:
int i = 5;
float f = i; //Something happened here...
但是,如果我们尝试这种方法:
int i = 5;
float f = *(float *)&i;
f 不会得到 5.0,因为它以“浮点方式”解释存储在 i 中的位。那么编译器在第一种情况下实际上做了什么魔法呢?这似乎是一项相当费力的工作......有人可以指定吗?谢谢。
【问题讨论】:
标签: c++ c casting type-conversion