C++中的运算:a += a *= a /= a

#include<iostream>
using namespace std;
int main()
{
	int a = 8;
	a += a *= a /= a - 6;
	cout << "Result :" << a << endl;
	return 1;
}

注意赋值运算符是从右往左结合的,所以这个表达式是这样运算的:

a += ( a *= (a /= (a - 6)))

意思就是首先将a / (a - 6) 的值赋值给a

再将a 现在的平方的值赋给a

再将最新a 的值乘2赋值a

不过要注意那个除法对整数和浮点数类型时不一样

比如int a= 10,则a - 6 = 4,于是a /= (a-6),a被赋值10/4 = 2 ,并且表达式的值也是a的值2

然后a *= (a /= (a - 6)),因为a已经被修改为2,于是a 被2 * 2 = 4赋值,并且表达式的值也是a的值4

最后a + = ( a *= (a /= (a - 6))),此时a已经被修改为4,于是a 被4 + 4 = 8赋值

如果a是浮点数,则除法结果就是正常意义上的除法了,后面的过程一致

原文地址:https://www.cnblogs.com/masbay/p/13731738.html