int a=3,b=2,c=1则以下错误的赋值表达式是A a=(b=4)=3B a=b=c+1C a=(b=4)+cD a=1+(b=c=4)请问赋值表达式有什么规则
A
由运算符结合性可知,赋值运算符的结合性为自右向左结合的,所以A其实就等效于
而子表达式b=4的值为右值,不可作为赋值号的左操作数,所以导致子表达式(b=4)=3违反语法规则
可是书上(a=3*5)=4*3这个表达式怎么就对呢,这两个有什么区别