在C/C++中,i+++j的实现顺序会依赖于硬件结构,不同的环境会有不同的结果。不过在JAVA中,这个结果是固定的,不受其运行的硬件环境和平台影响。
1 . i+++j的结合规则
首先看程序:
package chapter2;
public class PlusPlus {
public static void main(String[] args) {
int i = 10;
int j = 20;
int k = i++ + j;
System.out.println(i);
System.out.println(j);
System.out.println(k);
}
}
运行结果如下:
11
20
30
分析可知,i+++j的结合顺序为(i++)+j。
这种结合性归根于编译器的贪心规则,即在分析符号的时候,编译器会尽可能多的结合有效的符号。
2 . 为何贪心?
看下列代码:
package chapter2;
public class Greedy {
public static void main(String[] args) {
String s = "\17";
System.out.println(s);
System.out.println(s.length());
s = &