任何人都可以帮我解决这个问题 -
a-=(a--)-(--a)
当a的初始值为6时。
执行时的答案是4,但根据我的说法应该是-4。如果你能一步一步地向我展示,我将不胜感激。
答案 0 :(得分:3)
a = 6
a -= (a--) - (--a)
相当于:
a = a - ((a--) - (--a))
首先评估右侧,从左到右:
a
1 - > a--
2 - > --a
3 - > (a--)-(--a)
4 - > a-((a--)-(--a))
5
a
评估为6。a--
;评估为6,a
变为5。--a
;评估为4,a
变为4。6 - 4
;评估为2。6 - (6 - 4)
评估为2。a = 6 - (6 - 4)
; a
变为4。答案 1 :(得分:1)
您的问题来自于与递增或递减运算符(前置或后置)相关的值的使用顺序。
在预递减情况下,值在变量(--a)
之前递减,程序将a
的值减1,然后THEN使用该值。
在后递减情况下,值在变量(a--)
之后递减,程序取值a
,然后THEN将值减1。
您的案例
当a = 6
时因此a = 6 - (任何事情)
(--a)
时,我们将值减少为4,然后使用该值答案 2 :(得分:0)
a--
执行后减量,这意味着,a
被采用
作为6
,下次访问a
时,它将是5
。 --a
,a从5
变为
4
。 (a--)-(--a)
变为(6)-(4)
,即2
。 a-=2
已评估,a
在评估6
时为a-=
,因此6-2
为
4
。