cout输出顺序~~请高手们帮帮忙!
楼主#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
#include<iostream.h>
//add()函数的定义,其有返回值
double add(double x,double y)
{
double z;
z=x+y;
cout<<x<<"+"<<y<<"="<<z<<endl;
return(z);
}
void main()
{
double a=0.5,b=1.0,p;
//以不同参数形式调用函数add()
cout<<"add(a,b)="<<add(a,b)<<endl;
}
此时输出的结果:0.5+1=1.5
add(a,b)=1.5
问题:为什么不是先输出cout<<"add(a,b)="<<add(a,b)<<endl;语句中的字符串常量"add(a,b)="再调用add()函数呢?请高手们给小弟指点指点,不胜感激啊!