0

我有一个函数,它通过地址获取一个参数并更改参数的值。但是当我调用函数时,在加减的情况下执行顺序是不同的:

#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之前的减法运算符。

为什么会这样?

4

0 回答 0