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

一句话看C++与Java之间的区别

2014-04-25 19:42 232 查看
在学习Java的过程中,我发现同样一条语句,C++和Java下有不同的执行结果

int x = 1;

x = x++;

print(x);

那么在C++下,程序输出结果为2;

而在Java下,程序输出结果却为1。

其实在语法上都是正确定义了++运算符的优先级,而导致其二者运算结果的不同,究其原因,是编译器的区别,因为在C\C++的编译器中,将等式右边表达式的值放入了寄存器中,也没有严格按照运算符的优先级来参与运算,所以等式左边的值就等于表达式的值为1,然后再执行++操作,最后X即为2;而在Java\C#的编译器中,是严格按照++运算符的优先级来参与运算的,因为++在表达式右侧,所以先将1的值存入栈中,然后执行++操作,X变为2,最后才将栈中的值1赋值给X,所以X的值还是等于1。

在此,也要非常感谢网友@Sandy的博客:http://www.cnblogs.com/Sandy945/archive/2011/06/06/2073613.html

给我们提供了一个可靠的参考解说。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java c++ 区别