您的位置:首页 > 其它

cout<<("four"+2+1);输出“r”?

2012-03-07 20:50 253 查看
 
今天有同学问我一个小的测试程序,对结果很是疑惑

#include <iostream>
#include <string>
using namespace std;
void main()
{
 string str ="four" + 2;
 cout<<str<<endl;
 cout<<("four"+2+2)<<endl;//在C++中正常的连续输出应该写成cout<<"four"<<2<<2<<endl;若要进行计算则直接写cout<<2+2;将输出4
}

               

运行结果如下:

我看了之后第一感觉也是不可思议,仔细一看,怀疑在cout之后的“+”被重载了,“+2”即右移两位,所以输出“ur”和空。

将string str ="four" + 2;改成string str ="four" + 1;后果然输出“our”。

 

以上仅是自己的一种解释,希望有这方面官方资料或者明白其中原理的朋友分享一下!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string 测试 c
相关文章推荐