| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7628 人关注过本帖
标题:a+++++b是怎么运算的???
只看楼主 加入收藏
枫枫落雨
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-7-22
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:19 
a+++++b是怎么运算的???
a+++++b运算的过程是怎样的???谁细说下啊,求教。
搜索更多相关主题的帖子: 运算 
2010-07-26 14:32
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:3 
(a++)+(++b)
第一步 b自加1再赋值给b
第二步a + b(b的值已加1)
第三步 a自加1

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-07-26 14:38
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
再水的人都知道不同的编译器会有不同的行为。。。

尤其在处理这种连加的运算。
2010-07-26 15:17
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:0 
以下是引用Devil_W在2010-7-26 15:17:09的发言:

再水的人都知道不同的编译器会有不同的行为。。。

尤其在处理这种连加的运算。
用C/C++真杯具,还要考虑编译器问题,不像JAVA在哪里运行结果都一样。

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-07-26 15:30
灯、、
Rank: 4
等 级:业余侠客
威 望:2
帖 子:142
专家分:288
注 册:2010-6-21
收藏
得分:3 
假如你定义int a = 1,b = 2;

 c = a+++++b;

1:先执行b自加,b变为3;相当于:b = b+ 1;
2:求a与b之和,赋给c;相当于:c = a + b ;//c = 1+3;
3:执行第二步之后,a自加1:a++;
4:如果要输出的话,(按执行顺序)
                  b = 3;
                  c = 4;
                  a = 2;
this all.

2010-07-26 15:42
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
楼上的高手们都解答好了,我来晚了

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-07-26 15:47
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
以下是引用lampeter123在2010-7-26 15:30:24的发言:

用C/C++真杯具,还要考虑编译器问题,不像JAVA在哪里运行结果都一样。

用JAVA的真悲剧, 凭百无辜就比c++慢两个数量级。
2010-07-26 15:51
ggyy4k
Rank: 5Rank: 5
等 级:职业侠客
帖 子:111
专家分:334
注 册:2010-6-28
收藏
得分:4 
回复 楼主 枫枫落雨
试验证明,a+++++b在编译时会报错,(a++)+(++b)和a++ + ++b不会报错
学过编译原理的人都知道,“a+++++b”这一段根本就无法解析,编译系统从左至右扫描整条语句,先遇到a++,判断出来是一个a的后缀自加运算,然后接着扫描,遇到一个+,+是一个二目运算符,它的左边已经有一个运算数a++了,系统就向右搜索第二个运算数,又遇到一个+,++比+的运算级别要高,这时,编译系统就将两个+看成一个整体来处理,既然是++,编译系统就认定,肯定它的左边或右边有一个变量,编译系统先搜索左边,发现++,不是变量,再搜索右边,发现+b,+b是什么东西?编译系统是无法搞明白的,因此它就认为++是一个缺少左值的自增运算符,于是提示提示用户:’++’ needs l-value

[ 本帖最后由 ggyy4k 于 2010-7-26 16:03 编辑 ]
2010-07-26 16:02
哥只是传说
Rank: 2
等 级:论坛游民
帖 子:27
专家分:22
注 册:2010-7-18
收藏
得分:0 
以下是引用Devil_W在2010-7-26 15:51:06的发言:


用JAVA的真悲剧, 凭百无辜就比c++慢两个数量级。
JAVA比C++慢吗?有什么证明?


[ 本帖最后由 哥只是传说 于 2010-7-26 16:14 编辑 ]
2010-07-26 16:12
哥只是传说
Rank: 2
等 级:论坛游民
帖 子:27
专家分:22
注 册:2010-7-18
收藏
得分:0 
刚试了,a+++++b是不能通过运行的
2010-07-26 16:15
快速回复:a+++++b是怎么运算的???
数据加载中...
 
   



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

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