C++关于赋值表达式的一道题,求大神详细解答

int a=3,b=2,c=1则以下错误的赋值表达式是
A a=(b=4)=3
B a=b=c+1
C a=(b=4)+c
D a=1+(b=c=4)
请问赋值表达式有什么规则

第1个回答  2014-06-25

A

由运算符结合性可知,赋值运算符的结合性为自右向左结合的,所以A其实就等效于

a=((b=4)=3)

而子表达式b=4的值为右值,不可作为赋值号的左操作数,所以导致子表达式(b=4)=3违反语法规则

追问

可是书上(a=3*5)=4*3这个表达式怎么就对呢,这两个有什么区别

相似回答