有题目当a为1的时候++a-a++为多少答案为0
我们再输出a这个时候a等于3
为什么呢?
运算顺序
前置递增.减 大于 数字运算和后置递增.减 大于 比较(布) 大于 逻辑(或,且) 大于 赋值
好当我们把运算顺序理清楚了我们来看一下
当a = 1(不同题目下)
解 ++a - ++a
- 先-前置递增.减 ++a = 2 这个时候a也等于了2
- 2 - ++a
- 继续前置递增 ++a 由于这个时候回去全局找变量a,这个时候全局a等于2,所以2再++等于3
- 2-3 = -1
解 ++a - a++
- 先前置递增.减 ++a = 2 这个时候a也等于了2
- 但是当是后置递增.减的时候就要和数字运算按照前后顺序执行了
- 这个时候数字运算减法再前面所以先减法2-2 = 0
- 当算完了数字运算减后再算后置递增.减 a++,去全局找a为2, a++这个时候全局a就为3了
解 --a + --a
- 都是前置所以是先前面的前置 --a这个时候a为0了: 0 + --a
- 然后再 第二个--a 这个时候去找a 已经是0 ,--0为-1
- 0 + -1 = -1
- 这个时候a为-1
解 --a - a++
- 先0 - a++
- 再先数字运算再前面所以先减法0-0 = 0
- 但是a++再数字运算后还是会执行 这个时候a全局中是0, 0++就等于了1