当然不对了,你要知道x--和--x的具体区别才行。这么说吧,x--是先进行运算然后在-1,也就是说x在本次运算之前还是原来的值,没有经过--运算。而--x是先把x-1然后再进行赋值获其他运算操作。x--=y++这个说不通呀。本身x的只还没有确定就要-1这就是越步了。--x中x是由初始值的,先进行--运算,然后再赋值,这个是可以的。
“=”: 是讲一个数据赋给一个变量,左操作数必须为左值
而且--,++是单目运算符,和=都是右结合的,但优先级--和++高于=,
所以在第一个表达式中
a=(x--=y++)?x--:y++;先计算y++的结果,然后再赋给左边但是左边有--,且--右结合时碰到=,也就是说=给的值是--,而不是x
a=(--x=y++)?x--:y++;等价于a=((--x)=y++)?x--:y++;
a=(x-- == y++)?x--:y++; 改成这样试试 可能是=和==的问题