日期:2014-05-20  浏览次数:20666 次

关于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?


------解决方案--------------------
引用:
请问一下,p1和p2的自加是因为被q1和q2调用的关系么?


q1 = ++p1;   // p1,先自加然后赋值给q1
q2 = p2++;   // p2,先赋值给q2然后自加

是的,是因为调用的关系,调用时,给p1和p2添加了++操作