如果我说i初始值是2,那么你们觉得(++i) + (++i) + (++i)表达式值为多少呢?
思考思考,再看图下的答案
答案不唯一,答案取决于所选编译器
如果我们选定是Dev C++编译器等,答案就是13,而如果选某些编译器,答案就是15,当然你们可能认为理论上应该是12,即3 + 4 + 5
现在说一说答案为13的情况,那就是先扫描第一个运算符+号左右两个,此时i从2变成了4,即4 + 4 = 8,接着就是8 + 5 = 13
而答案为15的情况就是全扫描三个(++i),得到i = 5,所以5 + 5 + 5 = 15
变式:
(++i) + (++i)等于多少?
思考思考,再看图下的答案
如果是Dev C++编译器等,则答案是8,因为编译器会先扫描前面两个,所以就是4 + 4