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

关于++符号的问题!前辈帮忙!
这段代码里——

  int i=3;
  int j=i++;//i=4,j=3
  int k=++i;//i=5,k=5

第一个问题:书上说++的意思为自加1,那么上面的代码i的值为3,自加1后得4,在将i的值赋给j、结果应该是j和i都为4,怎么i等于4,j=3呢?

第二个问题:i++和++i有什么不同?

谢谢前辈们了!





------解决方案--------------------


i++
i = i;
i = i + 1;

++i
i = i + 1;
i = i;
这是这两个操作的执行过程,

 a int i=3;
 b int j=i++;//i=4,j=3
 c int k=++i;//i=5,k=5 

执行过程如下
 1 int i = 3;

 2 int j = i; // j=3
 3 i = i + 1; // i=4

 4 i = i + 1; //i=5;
 5 int k = i; //k=5;

b 相当于 1,2两句的效果
c 相当于 4,5两句的效果