【发布时间】:2020-01-31 21:34:15
【问题描述】:
我在 Java 中遇到了以下代码:
public static void foo (int a, int b) {
System.out.println("a: " + a);
System.out.println("b: " + b);
}
public static void main(String[] args) {
int c = 1;
foo(c--, c);
System.out.println("c: " + c);
//The output is:
//a: 1
//b: 0
//c: 0
谁能解释一下,为什么会这样?我会反过来猜到只有第一个打印语句会受到c-- 的影响。但如果它确实永久改变了 c 的值,为什么第一行打印仍然是 1?
【问题讨论】:
-
c--是一个后减运算符。这意味着,它减少变量之后它从表达式返回一个值