#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是浮點數,則除法結果就是正常意義上的除法了,后面的過程一致
