关于C++ 中的插入符 << : 一个奇怪的现象

让我们来看以下一段代码:

 

int swap2(int& a, int& b) { int t = a; a = b; b = t; return 0; } void test() { int a = 23, b = 1083; int t = 0; cout<<swap2(a,b)<<" a= "<<a<<" b= "<<b<<endl; } int _tmain(int argc, _TCHAR* argv[]) { test(); system("PAUSE"); return 0; } 

 

1. swap2 是一个简单的交换函数,输入的两值做交换,所以用的传引用的参数方式

 

按照估计,输入结果 应该是: 0 a= 1083 b= 23   即 a 和 b 两值 交换后的结果

 

然而 实际结果是  0 a= 23 b= 1083   !!!!!!

 

原来 << 符号有先后次序问题?

 

我又做了另一个实验:

 

int f1() { cout<<"This is f1()"<<endl; return 1; } int f2() { cout<<"This is f2()"<<endl; return 2; } int f3() { cout<<"This is f3()"<<endl; return 3; } void test() { cout<<f1()<<f2()<<f3(); } int main() { test(); return 0; }  

 

输入结果是:

 

This is f3()

This is f2()

This is f1()

123

 

 

哈哈, f3()被先执行!!

 

 

你可能感兴趣的:(C++,System)