【求助】cout输出顺序

来源:百度知道 编辑:UC知道 时间:2024/06/03 19:10:03
#include <iostream>
using namespace std;
int f(int a)
{
auto int b=0; //auto可以省略
static int c=3;
b+=1;
c+=1;
return a+b+c;
}

int main()
{
int a=2,i;
/*for(i=0;i <3;i++)
cout < <f(a) < <" ";
cout < <endl;*/
cout < <f(a) < <" " < <f(a) < <" " < <f(a) < <endl;
return 0;
}

此时输出是9 8 7
而把注释的内容替换它下面的输入语句,输出是7 8 9
请问高手,为什么同样调用3次f(a),输出顺序相反呢?
我用的是VC6.0
不胜感激
cout自右向左输出不对,如果定义int a,b,c;
a=1,b=2,c=3;
cout<<a<<b<<c<<endl;
输出123而不是321

比如:
int i=0;

cout << i << i++ <<endl;

结果是 1 0

cout 是从 右向左 输出的。。不信你随便试! //sorry 应该是从右向左 运算的

// 这和 编译器无关……

你可以参考 这篇文章~~~ 讨论的挺详细的
http://groups.csdn.net/vcmfc/topic/8e085766-4a71-488d-a5b6-60fd7cd29c73.aspx

家里的机器没有C++ 如果结果果真如你所说,,,我也觉的奇怪了,还特意去看了cout的百科 http://baike.baidu.com/view/1261354.htm
还是奇怪,明天上午我回办公室看看

cout是一个输出流,也就是你输入数据,然后一起显示出来时,就相当于先进后出

<< 是右结合的

hjh