#include <iostream>
using namespace std;
int a=0;
int fun1( )
{
cout << "f1"<<endl;;
a++;
return a;
}
int fun2( )
{
cout << "f2"<<endl;;
a++;
return a;
}
int main()
{
int i = 1;
cout << "m" <<endl<< fun1() <<endl<< fun2()<<endl;
return 1;
}
cout << "m" <<endl<< fun1() <<endl<< fun2()<<endl;这句代码应该理解为:
operator<<(cout,"m",endl,fun1(),endl,fun2(),endl);
按C /C++调用约定,参数从右到左压入堆栈区:
1.fun2()入栈,输出"f2";
2.fun1()入栈,输出"f1";
3.cout对象入栈;
4.最后调用operator<<(cout,"m",endl,fun1()的返回值,endl,fun2()的返回值,endl);
输出结果为:
f2
f1
m
2
1