今天去酱油一个笔试,遇到一个比较费解的题:i+++i,一直不明白为什么结果是2?今天甚至跑去看了汇编的代码,但是还是搞不懂,后来问了一老师得到如下解释::i+++i解释成i++ +i,如果表达式为“子表达式1 操作符 子表达式2”,通常的计算顺序为:“子表达式2、子表达式1、表达式”,这样你就可以理解为什么运算结果为2了,我在ubuntu中用gcc测试过,是这样的结果。如果表达式为“子表达式1 操作符 子表达式2”的计算顺序为:“子表达式1、子表达式2、表达式”,那么两段代码的计算结果都应为3,我在mac的xcode中测试就是这样的结果。所以说程序这样的书写风格是不好的,有二义性。
个人感觉也就是只能这样才可以解释的明白了这三个+是这样的结果了
462

被折叠的 条评论
为什么被折叠?



