Naz*_*iuk -2 java syntax operator-precedence
我的朋友给我发了个笑话:
问:C和C++有什么区别?
A.没什么,因为:(C - C++ == 0)
我试图改变秩序并陷入困境.
看看这段代码:
public class Test {
public static void main(String args[]) {
int c = 10;
System.out.println(c++ - c);
System.out.println(++c - c);
}
}
Run Code Online (Sandbox Code Playgroud)
为什么会回归:
-1
0
Run Code Online (Sandbox Code Playgroud)
我理解postfix和前缀增量.为什么不是这个结果?
0
1
Run Code Online (Sandbox Code Playgroud)
cdh*_*wie 11
因为在第一个例子中,c开始10. c++增量c并返回10,所以第二个c现在评估为11,因为它是递增的.所以评估的最终表达式是10 - 11等于-1.
在第二个示例中,再次++c递增c但返回12,因为它是预增量.第二个也c评估为12,因为它是存储的新值c.因此表达式最终被评估为12 - 12等于0.