C++和java中的i++和++i(转)

C++和java中的i++和++i (2012-04-11 21:04:53)

标签:

it

分类: CPlusPlus

1、C++和java中的++运算

JAVA:

 public class Test {   public static void main(String args[])   {    int i,j; i=0;    for(j=0;j<5;j++){   i=i++;    System.out.println("i="+i);    }   } }


C++:

 #include<iostream>
 using namespace std; void main() { inti,j; i=0; for(j=0;j<5;j++) { i=i++; cout<<i<<endl;
 } }

第一个JAVA程序得出的结果如下:
i=0
i=0
i=0
i=0
i=0
而第二个C程序得出的结果如下:
i=1
i=2
i=3
i=4
i=5

原因何在?

2、java的++

java的编译器在遇到 i++和i--的时候会重新为变量运算分配一块内存空间,以存放原始的值,而在完成了赋值运算之后,将这块内存释放掉,下面首先看一下如果是j=i++的情况:

C++和java中的i++和++i i的原始值存放在后开辟的内存中,最后这个值将赋值给j,这样j=i++后,j就会得到i的值,而i又将自加,所以,在释放内存之后,原来存放 j和i的地方将得到值将是:j(此时的值等于初始i值)和i(i自加后的值)。明白了上面的问题,让我们接下来看看i=i++的情况:

C++和java中的i++和++i

3、C++中的++ C++中 i++是在执行完整句语句之后再执行的,如int i=0; int j = i++ + i++; 结果是j=0

而java中 int i=0;int j = i++ + i++; 结果是j=2

posted on 2012-09-12 14:21  pony1223  阅读(234)  评论(0)    收藏  举报

导航