在c语言中(a=1)==(a=2)为什么成立?

在c语言中(a=1)==(a=2)为什么成立?左右两个赋值表达式的值不应该是1和2吗?

程序从左到右依次执行,先看到a=1的赋值语句,然后是一个==条件判断语句,然后遇到右边的a=2语句
遇到a=2语句,左边的a=1也只能被迫从开始的1变成2
2==2,懂得都懂