与其他运算符从左向右计算不同,赋值运算符从右向左计算。教材的最后一句话没太明白 不是从左到右吗 先计算在赋值,钻牛角尖了
嗯,就是这样
所以赋值运算符必须从右向左计算
运算符计算
X=Y=2(X和Y的值都是2)
X/=0.5(X=X/0.5,X=4)
Y%=2(Y=Y%2,Y=0)
输出X-Y=4(4-0=4)
还没明白就扔一边别管了,记死赋值运算符从右向左计算
X=Y=2的意思是2这个值先赋给了Y,然后Y又赋值给了X,也就是说Y的栈里面存储了2这个值,然后X的栈里面存储了Y这个值(我们已经知道了Y的值是2,那么X的值是Y也就是2)
X+=2你要是先计算在赋值从左到右和计算运算法1+1=2一样的话就是X+=2,也就是X+0=2,就等于X=2,
题是
X=Y=2(X和Y的值都是2)
x /= 0.5(X/0=0.5,式子不成立退出报错)
y %= 2;(上面已经报错退出程序这个式子也就没意义)
再不懂我就没办法了
我的理解是:
x=y=2表示2赋值给以,然后y赋值给x。
x+=2中+是加运算符,=是赋值符,依旧是所以从右向左计算。
赋值运算符从右向左计算,应该说的是这行代码吧:
x = y = 2;
先给y赋值2,然后给x复制y。
赋值运算符是从右向左计算的