编程资料集中营
 | 网站首页 | 文章中心 | 编程资料2 | 软件下载 | BT下载 | 八卦星闻 | 音乐在线 | 在线游戏 | 免费电影 | 给我留言 | 
JAVA与C++的一点比较-Java技术
          ★★★
【字体:
JAVA与C++的一点比较-Java技术 进入问吧

本站地址:http://www.bajiao123.com

作者:admin    文章来源:网络    点击数:    更新时间:2006-12-27    
来源:WEB开发资源联盟(http://cnpoint.com/)
作者:point
原文:JAVA与C++的一点比较(http://cnpoint.com/framwwork/2006/1125/content_4664.htm)

JAVA与C++的一点比较  int a =10; a+=a-=a*=a;
   
上面的两句,在JAVA与C++中有不一样的表现。它们的结果一个是-80,一个是0。是JAVA中是0,还是C++中是0,你知道吗?

在实验知道结果后,很容易解释。差别在于:右边的=运算完以后,前面的=左边的变量值是否发送了变化 。
但是深层的原因是怎么回事?我反正是不太了解,我是和一要好的同学闲聊时发现这样的问题的,希望有人能比较彻底的讲解一下。



注:修改成a+=(a-=(a*=a));结果也没有变化,可见不关运算顺序,及运算符结合的问题
         C++我用的是TruboC++,防止可能不同的编绎器实现不一样照成的争吵。
        当然开发中,要是有人写出这样的代码肯定要被人骂.但是从语言的比较来说,或者是出于对语言的细节的学习.上面的代码还是很有意思的.

在java中赋值时会创建一个临时变量。
java在计算之前,值应该是都付好了
10+=(10-=(10*=10))
so, in java, it's -80. in c , it's 0.


   

进入问吧

JAVA与C++的一点比较-Java技术

本站地址:http://www.bajiao123.com

文章录入:admin    责任编辑:admin 
高级搜索
编程资料集中营