我有一个函数,它通过地址获取一个参数并更改参数的值。但是当我调用函数时,在加减的情况下执行顺序是不同的:
#include <iostream>
using namespace std;
int fun(int *i) {
*i += 5;
return 4;
}
int main()
{
int x = 3;
x = x + fun(&x);
cout << "x: " << x << endl;
int y = 3;
y = y - fun(&y);
cout << "y: " << y << endl;
return 0;
}
上述代码的输出是:
×:12
是:-1
这意味着x
首先在函数中更改,然后添加到自身(我希望x
成为7
),但更改y
不会影响y
之前的减法运算符。
为什么会这样?