小弟初学c++,在教程里(谭浩强编的c++)看到一个问题十分困惑,请高手指教,谢谢!
以下是教程里的原文:
“例如,若变量i的值为3,有以下函数调用:
fun(i,++i);
如果按自左至右的顺序求实参的值,则函数调用相当于fun(3,4),若按自右至左的顺序求实参的值,则相当于fun(3,3)。许多c++系统(例如Visual C++和GCC)是按自右至左的顺序求值的。”
为什么按自右至左的顺序求值就是fun(3,3)呢,能不能写个代码体现一下?
这不是自右向左的顺序问题,这是个,(逗号)运算法则。
比如(a,b)a,b分别为表达式,先计算a,然后运算结果暂存,再运算b,整个表达式的结果由b决定。
所以
void f(int i,int j){
cout << i << "\t" << j << endl;
}
int a = 3;
f(a,++a);
输出结果为 4,4。