float x; // ... // int i = *(int*)&x;
为什么有人会选择使用这种怪异的投射,而不是仅仅是以下的?
int i = (int)x;
int i =(int)x;将float转换为int,这将简单地截断它.
int i = *(int *)& x;将加载到我当前存储在x中的相同位.结果与截断x完全不同.