在C++中,a+=b %=a+b,是什么意思?怎么理解?最好能把它拆开。

2024-12-19 16:38:37
推荐回答(3个)
回答1:

几乎所有语句是从右向左理解的:

b=b%(a+b)
a=a+b

直接分别用1和2代入,

b=2%(1+2)  //b=2
a=1+2    //a=3

%是取余,除了a是0的情况下,第一句的结果都只会是b自己;

然后这句的结果,除了a、b均为0的情况外(不肯定0%0的结果):

a为0,b不是0,最终结果是a、b都是1;

b为0,a不是0,最终结果是a、b均不变;

其余情况,a加了b的值,而b不变。

回答2:

先执行 b%=a+b, 等同于b=b%(a+b);
然后执行 a+=b,等同于a=a+b

回答3:

先执行 b%=a+b, 等同于b=(a+b)%b;
然后执行 a+=b,等同于a=a+b