| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 511 人关注过本帖
标题:a+=a/=a*=a-=a*a
只看楼主 加入收藏
粉jj
Rank: 2
等 级:论坛游民
威 望:1
帖 子:123
专家分:82
注 册:2011-3-8
结帖率:85.11%
收藏
已结贴  问题点数:20 回复次数:4 
a+=a/=a*=a-=a*a
语句:int a=12;a+=a/=a*=a-=a*a;输出a为0;
但是:long a=12;a+=a/=a*=a-=a*a;输出a为2;
why???
搜索更多相关主题的帖子: long 
2012-03-23 10:47
xielei0806
Rank: 2
等 级:论坛游民
帖 子:36
专家分:28
注 册:2012-3-20
收藏
得分:7 
这个没有错,我两个都运行了 最后结果都是2
可能是编译器的问题吧!你尝试一下其他的编译器看一下
2012-03-23 11:45
粉jj
Rank: 2
等 级:论坛游民
威 望:1
帖 子:123
专家分:82
注 册:2011-3-8
收藏
得分:0 
回复 2楼 xielei0806
如果写成:int a=12;
            a=a-a*a;
              a=a*=a;
              a=a/=a;
              a=a+=a;
值又是2没错呢。
为什么吖????

2012-03-23 11:58
星辰雁
Rank: 4
等 级:业余侠客
威 望:1
帖 子:93
专家分:275
注 册:2011-9-10
收藏
得分:7 
优先级问题,同一优先级的运算要从右往左执行。
当然也和编译器有关。

不要认为CPU运算速度快就 把所有的问题都推给它去做,程序员应该将代码优化再优化,我们自己能做的决不要让CPU做 ,因为CPU是为用户服务的,不是为我们程序员服务的!
2012-03-23 23:51
nicum
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:180
专家分:712
注 册:2011-2-1
收藏
得分:7 
回复 3楼 粉jj
就说 a=a*=a 吧 a 初值 12
a*=a <=> a=a*a <=> a=12*12=144; (这条语句返回 a 这个值)
a=a*=a <=> a=(a*=a) <=> a=144
2012-03-23 23:56
快速回复:a+=a/=a*=a-=a*a
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011674 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved