当我遇到这个问题时,我正在做计算机科学UIL考试表:
下面的输出是什么?
int a = 5;
int b = 7;
int c = 10;
c = b+++-c--+--a;
System.out.println(a + " " + b + " " + c);我写下了答案“由于语法错误没有输出”,但我错了。真正的答案是481!(我亲自测试过)
有人能给我解释一下4号线的工作原理吗?
谢谢
发布于 2013-08-04 05:17:55
我添加了一些括号:
int a = 5;
int b = 7;
int c = 10;
c = (b++) + (-(c--)) + (--a);
System.out.println(a + " " + b + " " + c);b++:在使用b之后,b=b+1
使用c后的c- : c=c-1
--a :使用a之前的a=a-1
发布于 2013-08-04 05:18:04
这样看吧:
(b++) + (-(c--)) + (--a)这应该更有意义!
看看算子优先,看看它为什么是这样工作的。
发布于 2013-08-04 05:20:51
看看c的初始化,c = (b++) + (-(c--)) + (--a);
为了你的学习目的,他们对它进行了压缩和故意混淆。代码就是这么说的,c = (b + 1) + (-(c - 1)) + (a - 1);
https://stackoverflow.com/questions/18039908
复制相似问题