| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1210 人关注过本帖
标题:请问一下,这个程序为什么是这个结果?
只看楼主 加入收藏
xiaomanaruto
Rank: 6Rank: 6
等 级:侠之大者
帖 子:79
专家分:443
注 册:2010-4-1
结帖率:91.67%
收藏
已结贴  问题点数:6 回复次数:15 
请问一下,这个程序为什么是这个结果?
#include<stdio.h>
void main()
{
    int i=2;
    printf("%d\n",(++i)+(++i)+(++i));
}
运行后的结果是13,我总觉得应该是3+4+5=12才对,为什么是这个结果呢?谢谢各位了!
搜索更多相关主题的帖子: 结果 
2010-06-15 12:48
Muyoo
Rank: 2
来 自:北京交通大学
等 级:论坛游民
帖 子:20
专家分:26
注 册:2010-3-28
收藏
得分:1 
结果应该是15吧
++的优先级最高,先算完三个++(这时i等于5),再算括号外的+(就是三个5相加),结果等于15
2010-06-15 13:34
Practicint
Rank: 1
来 自:广东省海丰县
等 级:新手上路
帖 子:7
专家分:3
注 册:2010-6-14
收藏
得分:1 
研究过了,还是不懂,在线等高手......
2010-06-15 14:28
Practicint
Rank: 1
来 自:广东省海丰县
等 级:新手上路
帖 子:7
专家分:3
注 册:2010-6-14
收藏
得分:0 
又研究了一下,用TC的话是12,用VC是13,奇怪ing。
2010-06-15 14:35
q3286446
Rank: 1
来 自:中国
等 级:新手上路
帖 子:31
专家分:6
注 册:2010-5-24
收藏
得分:1 
我运行结果也是13
3+4+5=12

3+4+6=13
3+6+4=13
3+5+5=13
4+4+5=13
(++i)+(++i)+(++i)以3开头
那么
3+4+6=13 || 3+5+5=13 || 3+6+4=13
有没有可能  先算第一个 ++i 然后 后面的 去括号啊
2010-06-15 15:05
cracker134
Rank: 2
等 级:等待验证会员
帖 子:18
专家分:13
注 册:2010-6-15
收藏
得分:3 

(++i)结果为3.
(++i)+(++i)结果为8.即:3+5=8
推理计算过程应该是:3+5+5=13
(++i)+(++i)+(++i)+(++i)结果为19.即:3+5+5+6.

所以问题应该是出在第二个++i身上。

2010-06-15 15:31
cracker134
Rank: 2
等 级:等待验证会员
帖 子:18
专家分:13
注 册:2010-6-15
收藏
得分:0 
问题出在编译器身上:
用vc6.0结果是13.
用turboC结果是12.
2010-06-15 15:36
z9895512
Rank: 2
等 级:论坛游民
帖 子:24
专家分:43
注 册:2010-6-3
收藏
得分:0 
要我说,不要去管这个了····
2010-06-15 16:15
lzdrifter
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-06-15 17:48
q3286446
Rank: 1
来 自:中国
等 级:新手上路
帖 子:31
专家分:6
注 册:2010-5-24
收藏
得分:0 
.我运行结果也是13   纠正一下
3+4+5=12

3+4+6=13
3+6+4=13
3+5+5=13
4+4+5=13
(++i)+(++i)+(++i) 调成 (++i)+(++i) 时结果是 8 这时候的 i 值为4
一个(++i)时 i的值为3
可以确定的是 第一个 值应该是 4 第二个值 也是4
问题在于 第一个(++i)与 第二个(++i)之间  自行+1 或者是 自增
其结果 运行过程 应该是 4+4+5=13


[ 本帖最后由 q3286446 于 2010-6-15 18:08 编辑 ]
2010-06-15 17:55
快速回复:请问一下,这个程序为什么是这个结果?
数据加载中...
 
   



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

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