int main() { float a=1.0f; cout

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 12:15:29
int main() { float a=1.0f; cout

int main() { float a=1.0f; cout
int main() { float a=1.0f; cout

int main() { float a=1.0f; cout
纯粹的输出语句哦
1 //强制转换后的值
1065353216 //见附录
0 //等式判断结果
0 //同上
0
1
0x0012FF74,0x0012FF70,0x0012FF6C,0x0012FF68 //地址的输出
0x0012FF64,0x0012FF60
0 //等式的判断
0
1
附录:
(int&)a:将a的引用强制转换为整型,意思是a所在的内存,本来定义的时候为float类型,并初始为1.0f,
但现在我要按int类型解释这段内存(也就是说a所在的内存地址中的数据本来是按float型存储表示的,你非要按int型来解释不可).
1.0f 在内存中的存储为
0 011 1111 1 000 0000 0000 0000 0000 0000.
把他按整型数解释为2^29+2^28+2^27+2^26+2^25+2^24+2^23=1065353216
(int&)a 相当于
*(int*)&a
*(int*)(&a)
*((int*)&a)