关于cout输出顺序

来源:百度知道 编辑:UC知道 时间:2024/06/27 09:50:36
#include<iostream.h>
f(int c)
{
c++; //cout<<c<<endl;
return c;
}
main()
{
int a=1;
cout<<a<<" "<<f(a)<<endl;
return 0;
}
此时输出是1 2
但如果我把f(int c)中的cout<<c<<endl;加上
结果变为
2
1 2
为什么不是
1 2
2

1、当一个函数作为函数参数时,参数总是先要计算出来,外边的函数才能运行的。

2、其实<<也是一个函数,是一个运算符的重载。

3、所以f(a)作为cout<<的一个参数,f(a)先运行,然后这句cout才输出。

4、所以先输出f(a)里面的cout<<c<<endl; ,就是2,然后才执行cout<<a<<" "<<f(a)<<endl;

cout 遇到endl就把缓存中的数据显示到控制台上,f()中cout先有endl立即把数据显示出来,然后函数退出遇到表达式中的endl才将之前的cout中的数据显示出来

1321