i+++j是等价于(i++)+j,但不等价于i+(++j)。
因为算术运算法则是对于加减乘除是从左到右的,自加运算也是如此,而且自加运算优先级高于加减乘除。
你应多看和多做相应的练习,书里面讲的一清二除。
i+++j;//尽量取大原则,因为i可以跟一个+号,也可以跟两个+,这都有意义,因此,按尽量取大原则,选择i后跟两个++.(C++语言程序设计 吕凤吕凤翥 高教版 49页) 类同java
正确解是表达式的结果是i+j,运行完后i的值是i+1,j的值不变。因为++/+均为左结合,结合为(i++)+j而i++为先引用后自加。
这是运算符的优先级的问题,自加运算优先级高,所以就先做自加运算
个人觉得无所谓啊~~~~当然,如果你非要知道运行结果如何,写个小Demo试一下就可以了嘛~~~
真正写代码的时候是不允许出现这种代码的,因为可读性太差!