为什么两个值输出不同

helenhll 2005-10-26 10:40:51
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; // 输出什么?

输出结果是1,1065353216,false,0,0,true
...全文
114 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
helenhll 2005-10-27
  • 打赏
  • 举报
回复
其实是为了考试啊
xibingwuqing 2005-10-26
  • 打赏
  • 举报
回复
楼上高手,但对最后一句话不敢苟同
wohow 2005-10-26
  • 打赏
  • 举报
回复
(int)a会生成一个临时int变量,值当然是1,(int &)a不会生成int临时变量,直接引用float,因为int和float的内存布局不同,输出结果当然是看不明白的了。
建议这样的问题不要去深究,多看看有用的东东
XBox360 2005-10-26
  • 打赏
  • 举报
回复
同意1楼的解释
其实有时候会不经意的犯这些错误
还是应该注意一下

13,871

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧