C++求和程序

-2 c++

我创建了两个函数并将值返回到main部分.

#include <iostream>
using namespace std;
int a =8;
int g(){a++; return a-1;}
int f(){a++; return a;}

int main (){
    cout << g()+f()<<endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我不是为什么输出是18而不是17.我想知道是否有人能为我详细解释这一点?谢谢你的帮助

jua*_*nza 5

首先,请注意参数operator +不排序,这意味着g()f()可以在两个订单进行评估,g()之后f(),或f()之后g().恰巧在这种特殊情况下,这两个排序都18以不同的方式实现了相同的结果:

  • g()接着是f():g递增a9,然后返回8.f增量a10和回报10.总和是18.

  • f()接着是g():f递增a9并返回9.g增量a10和回报9.总和是18.