您的位置:首页 > 编程语言 > Java开发

话题10 千差万别----i++与++i的区别

2015-11-23 19:14 861 查看

1 ++i与i++的区别

    在使用的时候,大家都了解的是++i是先加再用,而i++是先用再加。但是二者其实有很大区别的。

2  .代码测试

  如下代码:
/**
*
*/
package chapter2;

/**
* @author Vayne
*
*/
public class ProandPost {

public static void main(String[] args) {
int i = 15;
function1(i);
function2(i);
function3(i);

}

/**
* @param i
*/
private static void function3(int i) {
// TODO Auto-generated method stub
i = i++;
System.out.println("i=i++的结果是:" + i);

}

/**
* @param i
*/
private static void function2(int i) {
// TODO Auto-generated method stub
int j = 0;
j = i++;
System.out.println("j=i++的结果是:" + j);

}

/**
* @param i
*/
private static void function1(int i) {
// TODO Auto-generated method stub
i = ++i;
System.out.println("i=++i的结果是:" + i);

}

}
运行结果如下:
i=++i的结果是:16
j=i++的结果是:15
i=i++的结果是:15

3  .区别小议

对于后置++,即i++,其实其实际应用过程是:
int temp=i;
i+=1;
f(temp);
其中f指的是对temp的实际应用。因此,在i++使用的过程中,引入了第三个变量temp,因此,对于i=i++,是将temp的值赋给了i,所以i=i++的结果,i为15。
而对于前置++,即++i,直接将i+=1,然后直接应用i。

4  .进一步的探索

从伪指令角度来说,前置++是将变量+1后应用,而后置++是先将变量的值压入栈中,然后将变量+1,最后应用的是栈中的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java