我只是想知道当您有多个带有空操作数的加号运算符时,编译器会做什么?我知道前/后增量运算符。编译器只是在两者之间加零吗?
int a = 1;
int b = + + + + + + a;
System.out.println(b); //prints 1
b = - - - - - - a;
System.out.println(b); //prints 1
b = ++a; //
System.out.println(b); //prints 2
这里有一个提示。
如您所指出
int a = 1;
int b = - - - - - - a;
System.out.println(b); //prints 1
但是使用奇数个-号给出
b = - - - - - a;
System.out.println(b); // prints -1
我将由您决定答案。
作为Elliott Frisch has already mentioned,它们是一元正负运算符。在+
和-
中,后者通常用于将正数更改为负数,反之亦然。
以下示例将帮助您更清楚地理解它:
public class Main {
public static void main(String[] args) {
int a = 1;
int b = +a;
int c = -a;
System.out.println("b = " + b + ", c = " + c);
b = + +a;// + and + = +
c = - -a;// - and - = +
System.out.println("b = " + b + ", c = " + c);
b = + + +a;// + (+ and +) = + and + = +
c = - - -a;// - (- and -) = - and + = -
System.out.println("b = " + b + ", c = " + c);
++b;
++c;
System.out.println("b = " + b + ", c = " + c);
}
}
输出:
b = 1, c = -1
b = 1, c = 1
b = 1, c = -1
b = 2, c = 0