读书人

函数参数执行顺序有关问题

发布时间: 2012-11-13 10:00:50 作者: rapoo

函数参数执行顺序问题
为什么C++函数执行的时候
参数是从右到左执行的?

我是学java的, 和java的顺序刚好相反
查个bug查了好久了

代码如下

C/C++ code
#include "stdafx.h"#include "string"int add1(int i) {    i++;    printf("%d\n",i);    return i;}int sum(int a,int b) {    return a+b;}int _tmain(int argc, _TCHAR* argv[]){    sum(add1(10), add1(20));    getchar();    return 0;}

输出
21
11

但是java是输出
11
21

[解决办法]
不确定
不同编译器 可以有不同的处理方式
[解决办法]
未定义行为,编译器可以自由处理。
你可以先把两个 add1() 的返回值按照你需要的顺序放到两个临时变量里,然后调用 sum()

读书人网 >C++

热点推荐