我被要求解释为什么下面的代码片段打印1.我已经盯着它看了一段时间,但还不能说出它为什么打印出1或甚至为什么它会编译。有人可以告诉我为什么吗?
int i = (byte) + (char) - (int) + (long) - 1;
System.out.println(i);
答案 0 :(得分:2)
这只是一系列强制转换和数字/字符转换:
int i = (byte) +(char) -(int) +(long) -1;
可以详细说明:
int a = -1;
long b = (long) a;
int c = (int) -b; //makes it positive
char d = (char) c;
byte e = (byte) d;
int f = e;
System.out.println(f);
答案 1 :(得分:1)
这里有4个施法操作符和4个+/-操作符。
由于+/-无法应用于投射操作符,因此评估此表达式的唯一方法是将DocumentRoot "C:/xampp/htdocs/projectName"
<Directory "C:/xampp/htdocs/projectName">
和-
视为一元运算符:
+