曾经和几位朋友争论过关于cout<<xxx<<xxx<<xxx;中<<执行顺序的问题,也有些朋友问过我这个问题,现在我写下一个小小的程序以证明关于<<插入运算符所具有的右结合性质(从右往左的执行顺序)
#include <iostream>
//using namespace std;
using std::cout;
using std::endl;
int & streamExecuteSequenceTest(int& i)
{
return ++i;
}
int main(void)
{
int i=0;
cout<<"1 : "<<streamExecuteSequenceTest(i)<<endl //Execute 3
<<"2 : "<<streamExecuteSequenceTest(i)<<endl //Execute 2
<<"3 : "<<streamExecuteSequenceTest(i)<<endl; //Execute 1
//此程序证明了<<流运算符具有右结合的特性,从右往左执行
return (0);
}