|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 请问一下,这个程序为什么是这个结果?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1210
人关注过本帖
标题:
请问一下,这个程序为什么是这个结果?
只看楼主
加入收藏
xiaomanaruto
等 级:
侠之大者
帖 子: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
来 自:北京交通大学
等 级:
论坛游民
帖 子:20
专家分:26
注 册:2010-3-28
第
2
楼
收藏
得分:1
结果应该是15吧
++的优先级最高,先算完三个++(这时i等于5),再算括号外的+(就是三个5相加),结果等于15
2010-06-15 13:34
举报帖子
使用道具
赠送鲜花
Practicint
来 自:广东省海丰县
等 级:
新手上路
帖 子:7
专家分:3
注 册:2010-6-14
第
3
楼
收藏
得分:1
研究过了,还是不懂,在线等高手......
2010-06-15 14:28
举报帖子
使用道具
赠送鲜花
Practicint
来 自:广东省海丰县
等 级:
新手上路
帖 子:7
专家分:3
注 册:2010-6-14
第
4
楼
收藏
得分:0
又研究了一下,用TC的话是12,用VC是13,奇怪ing。
2010-06-15 14:35
举报帖子
使用道具
赠送鲜花
q3286446
来 自:中国
等 级:
新手上路
帖 子:31
专家分:6
注 册:2010-5-24
第
5
楼
收藏
得分: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
等 级:
等待验证会员
帖 子:18
专家分:13
注 册:2010-6-15
第
6
楼
收藏
得分: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
等 级:
等待验证会员
帖 子:18
专家分:13
注 册:2010-6-15
第
7
楼
收藏
得分:0
问题出在编译器身上:
用vc6.0结果是13.
用turboC结果是12.
2010-06-15 15:36
举报帖子
使用道具
赠送鲜花
z9895512
等 级:
论坛游民
帖 子:24
专家分:43
注 册:2010-6-3
第
8
楼
收藏
得分:0
要我说,不要去管这个了····
2010-06-15 16:15
举报帖子
使用道具
赠送鲜花
lzdrifter
该用户已被删除
第
9
楼
收藏
得分:0
提示:
作者被禁止或删除 内容自动屏蔽
2010-06-15 17:48
举报帖子
使用道具
赠送鲜花
q3286446
来 自:中国
等 级:
新手上路
帖 子:31
专家分:6
注 册:2010-5-24
第
10
楼
收藏
得分: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
举报帖子
使用道具
赠送鲜花
16
1/2页
1
2
快速回复:
请问一下,这个程序为什么是这个结果?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.020485 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved