float a=1.0f;
double b=1.0f;
cout<<(int&)a<<endl;
cout<<(int&)b<<endl;
在Turbo c++3.0中的结果都为0;
在VC++6.0中为1065353216和0
(int)a是把float型强类型化为int类型,所以为0;
(int&)a是把a地址的前两字节当成一个int类型数据输出;
至于为什么Turbo c++3.0中的结果为0,可能是因为编译器的差异问题。
不过我不明白的是为什么(int&)b输出都是0
float a=1.0f;
double b=1.0f;
cout<<(int&)a<<endl;
cout<<(int&)b<<endl;
在Turbo c++3.0中的结果都为0;
在VC++6.0中为1065353216和0
(int)a是把float型强类型化为int类型,所以为0;
(int&)a是把a地址的前两字节当成一个int类型数据输出;
至于为什么Turbo c++3.0中的结果为0,可能是因为编译器的差异问题。
不过我不明白的是为什么(int&)b输出都是0