2

我只想问,(--a,b) 是什么意思?谁能给我解释一下。目前我只想手动跟踪计算,但我被卡住了。

这部分代码:

否则 if (a%2 == 0) return (-a) * b + print_it(--a, b);

4

2 回答 2

5

表达式--a是前置减量运算符,意思是:在表达式中使用它a 之前先递减 的值。将其与使用表达式a--中的当前值的表达式进行比较a,并在评估结束时将其递减。

于 2013-01-28T03:21:47.940 回答
2

--++pre 和 post 运算符是 Java 看起来像 C 或 C++ 的一个领域,但具有明显不同的规则。

评估永远不会出现延迟,结果是完全确定的。关键概念是将运算符的副作用与其值分开。

表达式求值的一般规则在第 15 章。Java 语言规范中的表达式。--a的细节在15.15.2 中。Prefix Decrement Operator --作为副作用,它将 a 的值减 1。该值是存储新值后a 的值。

后缀减量具有相同的副作用,在表达式求值的同一点执行,但后缀减量表达式的值是存储新值之前的变量值。

于 2013-01-28T04:14:45.613 回答