| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8369 人关注过本帖, 3 人收藏
标题:一个简单程序,我运行的结果和理论不一致,大家分析问题在哪?
只看楼主 加入收藏
放不下的思恋
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-11-10
收藏
得分:0 
回复 楼主 greennet111
估计是你自己弄错了
2012-11-10 16:40
梁朝斌
Rank: 4
等 级:业余侠客
帖 子:192
专家分:288
注 册:2012-10-21
收藏
得分:0 
版主?

菜鸟也疯狂
2012-11-10 17:11
sunlie09
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-1-5
收藏
得分:0 
因为表达式使用的是栈内存,先进后出,计算机的运算过程是i++,i--,--i,++i;所以结果是3 2 3 3.

2012-11-11 16:22
q5387116
Rank: 1
等 级:新手上路
帖 子:7
专家分:5
注 册:2012-11-11
收藏
得分:0 
这个还的自己理解啊
2012-11-11 22:08
leisureC
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-6-6
收藏
得分:0 
理论分析确实应该是3 2 4 3 ,我的机子也是32位,运行结果也是3 2 3 3,估计与系统有关
2012-11-12 20:52
化十在我心
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2012-7-11
收藏
得分:0 
楼主用的是什么书啊?
2012-11-12 22:16
cyuyancqy
Rank: 2
等 级:论坛游民
帖 子:22
专家分:59
注 册:2012-10-31
收藏
得分:0 
正确结果就是4 3 3 2
2012-11-13 08:17
岗地画面
Rank: 2
等 级:论坛游民
帖 子:20
专家分:26
注 册:2011-8-2
收藏
得分:0 
printf("%d\t%d\t%d\t%d\n",++i,--i,i--,i++);
这个语句涉及到副作用和顺序点的问题,分号;是一个顺序点,在顺序点之前
所有运算符都要执行完,但是执行顺序会根据编译器的不同而有可能不同,
举个例子:
int a=5;
pintf("%d %d",a,a*a++);
a++可能在printf()函数执行完之前加,但也可能在printf()函数执行完后再加
但是由于;顺序点所以a++必须在下一条语句执行前执行,在不同编译器中会有不同结果,
可能输出
5 25
也可能输出
6 25
甚至可能输出
6 30
建议参考《C primer plus》第五章
2012-11-13 11:53
moyurongxu
Rank: 1
来 自:广西科技大学鹿山学
等 级:新手上路
帖 子:35
专家分:6
注 册:2012-10-11
收藏
得分:0 
我也是得3 2 3 3 汗

新手请多多指教
2012-11-13 22:14
hdt123
Rank: 1
等 级:新手上路
帖 子:7
专家分:4
注 册:2012-11-8
收藏
得分:0 
回复 楼主 greennet111
请问你是用什么软件编写的程序呢 ?
2012-11-13 23:57
快速回复:一个简单程序,我运行的结果和理论不一致,大家分析问题在哪?
数据加载中...
 
   



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

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