您的位置:首页 > 编程语言 > C语言/C++

C++与java在编译器上一个不同

2009-11-20 23:50 274 查看
c++里

定义

int i=2;
int j=(i++)+i*3;
cout<<i<<j<<endl;


结果是i=3,j=8;

再看看java里

int i=2;
int j=(i++)+i*3;
System.out.println(i);
System.out.println(j);


结果是i=3,j=11;

分析:

对于c++编译器来说,(i++)+i*3这个式子是从右到左

读入的,先计算i*3,再加上i,最后是i自加1,所以j为8;

对于java编译器来说,(i++)+i*3这个式子是从左到右

读入的,先进来的是i,然后i再自加1为3,这样,i*3的值便为9了,最后整个值便是11了。

在C#里,(i++)+i*3为11。这样看来,在这点上,java编译器实现与C#是一样的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: