| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 386 人关注过本帖
标题:谁帮我解释哈,为什么这两个想加等了14而不是13
只看楼主 加入收藏
wyc1023
Rank: 1
等 级:新手上路
帖 子:9
专家分:6
注 册:2012-3-16
收藏
 问题点数:0 回复次数:5 
谁帮我解释哈,为什么这两个想加等了14而不是13

请问为什么按下面的运算后a1是14,我理解该是13的,为什么?为什么a2又是22,按前面的那样后面的a2就该24啊,a3就该36,a4就该50了,为什么有不是呢?谁帮我解释一哈嘛,谢谢

i=5;
a1=(++i)+(++i)=14
a2=(++i)+(++i)+(++i)=22
a3=(++i)+(++i)+(++i)+(++i)=30
a4=(++i)+(++i)+(++i)+(++i)+(++i)=39


[ 本帖最后由 wyc1023 于 2012-4-15 22:55 编辑 ]
2012-04-15 22:54
ml232528
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:367
专家分:879
注 册:2007-7-23
收藏
得分:0 
和编译器有关,编程的时候一般不这样写的

-︻┻┳═一 ☆ 悲伤的代价就是让自己明白什么是最重要的和应该珍惜的
2012-04-15 23:01
sunlang1234
Rank: 2
等 级:论坛游民
帖 子:47
专家分:77
注 册:2012-2-24
收藏
得分:0 
a1=(++i)+(++i);++i是先自增然后再参加其它运算,所以i就是7,
a2=(++i)+(++i)+(++i);在(++i)+(++i)+(++i);中,因为存在两个同级的+运算,根据+运算符的左结合性,在编译时,其实是先处理前面的((++i) + (++i))这部分,然后再将此结果再和++i相加。所以就是7+7+8=22.以后同理。
2012-04-15 23:18
mysteryice
Rank: 2
等 级:论坛游民
帖 子:30
专家分:26
注 册:2010-4-4
收藏
得分:0 
编译器不同,结果不同啊。
2012-04-16 12:32
玉面狂龙
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:156
注 册:2012-2-23
收藏
得分:0 
不懂啊
2012-04-16 12:36
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
本坛不欢迎探讨这类问题!

授人以渔,不授人以鱼。
2012-04-16 12:39
快速回复:谁帮我解释哈,为什么这两个想加等了14而不是13
数据加载中...
 
   



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

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