关于(int&)强制类型转换
谁能解释一下下面的代码
float a = 1.0f;
cout << (int)a << endl;
cout << &a << endl;
cout << (int&)a << endl;
cout <<boolalpha<<((int)a ==(int&)a) << endl;
float b = 0.0f;
cout << (int)b << endl;
cout << &b << endl;
cout << (int&)b << endl;
cout <<boolalpha<<((int)b ==(int&)b) << endl;
输出如下:
1
001FFBC0
1065353216
false
0
001FFBB4
0
true
关于(int&)这一强制类型转换也解释一下吧,谢谢!
[解决办法]
(int&)a 相当于 *(int*)(&a)
[解决办法]
同上,(int&)a就是将a变量用int类型来解释
float a = 1.0f,在计算机中存储的值为0x3F800000,对应的十进制的值就是065353216
float b = 0.0f,在计算机中存储的值为0x00000000,对应的十进制的值就是000000000