当我遇到这个问题时,我正在做一个练习计算机科学UIL测试表:
什么是以下输出?
int a = 5;
int b = 7;
int c = 10;
c = b+++-c--+--a;
System.out.println(a + " " + b + " " + c);
Run Code Online (Sandbox Code Playgroud)
我回答"由于语法错误没有输出",但我弄错了.真正的答案是4 8 1!(我自己测试过)
有人可以向我解释第4行是如何工作的吗?
谢谢
Aki*_*kes 14
我添加了一些括号:
int a = 5;
int b = 7;
int c = 10;
c = (b++) + (-(c--)) + (--a);
System.out.println(a + " " + b + " " + c);
Run Code Online (Sandbox Code Playgroud)
b ++:使用 b后b = b + 1
c--:使用 c后c = c - 1
--a: 在使用a之前a = a - 1
看看它是这样的:
(b++) + (-(c--)) + (--a)
Run Code Online (Sandbox Code Playgroud)
这应该更有意义!
查看Operator Precedence以了解它为何如此工作.
| 归档时间: |
|
| 查看次数: |
878 次 |
| 最近记录: |