设a=1;b=2;,则(a++)+b和a+++b这两个表达式的值分别为( )

(a++)+b为什么不像(a+b)这么简单先算括号里面的 有时候挺难判断 求教

(a++)+b等同于a+b之后a+1,这个表达式执行完之后,表达式的值是3,a的值是2
a+++b,因为 ++ 的结合型是自左向右,所以它就等同于(a++)+b
但是如果这两个表达式放在一个程序里的话,由于先执行了第一个表达式,a=2,再执行第二个表达式,所以第二个表达式的值是4,最后a=3
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-17
(a++)+b=3
a+++b=3
错了,都是3
因为(a++)+b等价于a+++b
++本身的优先级就比+要高,所以先运算,再++,即先进行a+b的操作,然后再a++;本回答被提问者采纳
第2个回答  2013-09-17
(a++)+b ===》a++先用再自增1. 结果就是a+b
第3个回答  2013-09-17
从左向右按优先级算,都是3,a++先用后加
第4个回答  2013-09-17
4,4.参考下运算符优先级
相似回答