关于java自增,自减运算符的一个问题
在论坛上看到一个例子,代码如下:
public class Basic {
public static void main(String[] args) {
int i=0;
i = i++ + ++i;
int j=0;
j = ++j + j++ + j++ + j++;
int k=0;
k = k++ + k++ + k++ + ++k;
int h=0;
h = ++h + ++h;
int p1 = 0,p2 = 0; int q1=0,q2=0;
q1 = ++p1;
q2 = p2++;
System.out.println("i="+i);
System.out.println("j="+j);
System.out.println("k="+k);
System.out.println("h="+h);
System.out.println("p1="+p1);
System.out.println("p2="+p2);
System.out.println("q1="+q1);
System.out.println("q2="+q2);
}
}
我想问的是这个代码里并没有给p1,p2做自加,自减方面的运算,为什么运行的结果却是1呢? 还有就是为什么q2的值是0?
------解决方案--------------------
q1 = ++p1; // p1,先自加然后赋值给q1
q2 = p2++; // p2,先赋值给q2然后自加
是的,是因为调用的关系,调用时,给p1和p2添加了++操作