设int a=5,b=6,表达式(++a==b--)?++a:--b的值是

问题描述:

设int a=5,b=6,表达式(++a==b--)?++a:--b的值是

最後值为7,这是一个if语句,就是int a=5,b=6;if(++a==b--)++a;else --b;++ar的规则是先运算,所以括号中左值++a=6,a=6;==的优先级低过--,所以先计算b--b--的规则是先赋值,所以括号中右值b--=6,b=5;左值6==右值6,即条...左等于6,右等于5,怎么会相等?最後值为7,这是一个if语句,就是原程序等價:int a=5,b=6;if(++a==b--)++a;else --b;++a的规则是先运算++a=6,所以括号中左值,a=6;==的优先级低过--,所以先计算b--b--的规则是先赋值b--=6,所以括号中右值,b=5;左值6==右值6,即条件为真,执行++a,因为a=6, 所以工a+1=7,结果为 7