float b=1.0f;
cout<<"int(b) "<<int(b)<<endl;
cout<<"(int&)b "<<(int&)b<<endl;
cout<<"(int)&b "<<(int)&b<<endl;
cout<<boolalpha<<"((int)b==(int&)b) "<<((int)b==(int&)b)<<endl;
int a=1;
cout<<"a "<<a<<endl;
cout<<"(int&)a "<<(int&)a<<endl;
cout<<"(int)&a "<<(int)&a<<endl;
cout<<boolalpha<<"((int)a==(int&)a) "<<((int)a==(int&)a)<<endl;
cout << (int)&b << endl是把b的地址转化为int值输出。
float的结构为
1个符号位,8个阶码位和23个尾数位
double为
1个符号位,11个阶码位,52个尾数位