搞了很久都不明白,问了很多人也解答不了,高手帮帮忙吧
float a = 1.0f;
cout << (int)a << endl; // 这个是a的值,为1
cout << (int&)a << endl; // 这个应该是a的地址
cout << boolalpha << ( (int)a == (int&)a ) << endl; // 所以输出是false
float b = 0.0f;
cout << (int)b << endl; // 这个是b的值,为0cout << (int&)b << endl; // 这个也应该是地址,但是编译输出也是0cout << boolalpha << ( (int)b == (int&)b ) << endl; // 输出了true,迷惑的地方
后来,我把b的取值改成非零,比如 float b = 2.0f; 然后(int)b就是2,(int&)b输出1073741824。
我实在不明白这里(int&)b到底是输出的什么东东啊?
为什么呢?请高手指教!