解决方案 »

  1.   

    按照我用c的思维来说,
    12行:int j= i++; //j的值为1
    13行:int k=++j; //++j等于2,再赋值给k,所以k=2;
      

  2.   


     int j= i++; //这里的i是先赋值,后++ ,因此赋值给“j”的事“0”哦,
     int k=++j; //这里先++后赋值,因此这里“k”是“1” 望楼主切记哦……
      

  3.   

    public class Demo3_5
    {    
    public static void main(String[] args)
    {        // TODO Auto-generated method stub       
    int a = 9;       
    int b = -a;        
    byte bb = 9;        
    int ib = +bb;        
    int x = 4, y = 8;        
    int z;        
    int i = 0;       
    int j= i++;             //j=0,i=1        
    int k=++j;              //k=1,j=1;
    z = (x++)*(y--);        //z=4*8=32;  x=5,y=7;           
    System.out.println("a ="+a);      
    System.out.println("b ="+b);       
    System.out.println("bb ="+bb);      
    System.out.println("ib ="+ib);      
    System.out.println("i ="+i);       
    System.out.println("j ="+j);    
    System.out.println("k ="+k);      
    System.out.println("x ="+x);       
    System.out.println("y ="+y);     
    System.out.println("z ="+z);    

    }
    }
    楼主不要用c或c++的思想来看!我记得c++在不同的编译器中答案是不一样的!
      

  4.   

    C也是一样的,int k=++j; //先赋值给k,然后再j=j+1,所以k=1,
      

  5.   

    C也是一样的,int k=++j; //先赋值给k,然后再j=j+1,所以k=1,代码到12行的时候,j不是等于1了么?那么13行++j不是2么?
      

  6.   


            int i = 0;
            int j= i++;//j=0,i=1
            int k=++j;//k=1,j=1最后打印出来的当然是k=1,j=1了