面试题56:分析程序最后的输出结果


    #include<iostream> using namespace std; void main() { float a=1.0f; cout<<(int)a<<endl; cout<<(int&)a<<endl; cout<<boolalpha<<((int)a==(int&)a)<<endl;//输出什么 float b=0.0f; cout<<(int)b<<endl; cout<<(int&)b<<endl; cout<<boolalpha<<((int)b==(int&)b)<<endl; }

    答:从上到下依次输出的结果如下所示。


    01 1//转换成整数输出 02 1065363216//意思是将a代表的内存中的二进制数当成整型数据来看待 03 false//输出比较后的bool型结果 04 0 //转换成整数输出 05 0 //直接得到b在内存单元的值 06 true//输出比较后的bool型结果