| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8369 人关注过本帖, 3 人收藏
标题:一个简单程序,我运行的结果和理论不一致,大家分析问题在哪?
只看楼主 加入收藏
编程风
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-10-28
收藏
得分:0 
我试了下,是3  2    4   3啊。跟你书上的没错阿
2012-10-29 23:52
编程风
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-10-28
收藏
得分:0 
我试了下,是3  2    4   3啊。跟你书上的没错阿
2012-10-29 23:52
超级口水哥
Rank: 2
等 级:论坛游民
帖 子:31
专家分:46
注 册:2012-10-30
收藏
得分:0 
回复 2楼 无情屠神
请教您为什么您的电脑上运行结果和我们不一样啊
2012-10-30 20:00
李梦杰
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-10-30
收藏
得分:0 
你是在VC++6.0里运行的吧 你们的教材估计是讲的TC 如果是前者就是3 2 3 3
2012-10-30 22:28
橡皮孩子
Rank: 2
等 级:论坛游民
帖 子:23
专家分:29
注 册:2011-12-13
收藏
得分:0 
这个问题比较复杂!printf("%d %d %d %d\n",++i,--i,i--,i++);   3  2  3  3

    printf("%d",++j);
    printf("%d",--j);
    printf("%d",j--);
    printf("%d\n",j++);   
4  3  3   2
这两个的答案是不一样的!printf内如果只有一个参数是一个答案,有两个参数是一个答案,就出现上面的情况了!应该和编译器有关系!记住最简单的,最基本的就好了!绝对够用,要是底层的东西就得好好研究了。我用的是vc6.0
2012-10-31 22:24
李云龙
Rank: 1
等 级:新手上路
帖 子:7
专家分:8
注 册:2012-10-25
收藏
得分:0 
我感觉应该是软件的问题,理论上输出应该是3,2,4,3。不过我得vc输出的也是3233
2012-11-01 10:15
tomcaroline
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-9-26
收藏
得分:0 
随编译器不一样改变
2012-11-02 21:38
hkexiao
Rank: 1
等 级:新手上路
帖 子:3
专家分:1
注 册:2011-12-26
收藏
得分:0 
不同编译器有不同,要知道i++或i--是分号前的语句完成后才做的,而++i或--i是立刻执行的,而且微软的编译器printf()是从右向左的做的,所以结果,你自己再思考吧,希望对你有帮助。至于教材,还是看看你教材默认是在哪个编译器下运行的结果吧
2012-11-02 22:40
lu1512111454
Rank: 1
等 级:新手上路
帖 子:8
专家分:7
注 册:2012-10-11
收藏
得分:0 
  ......
2012-11-03 08:54
冰冻零点
Rank: 3Rank: 3
来 自:西安电子科技大学
等 级:论坛游侠
帖 子:81
专家分:136
注 册:2012-9-18
收藏
得分:0 
这里的逗号都是分割符,不是逗号运算符。这应该是个副作用和顺序点的问题吧,看编译器自己的了。

好好学习,天天向上
2012-11-03 13:35
快速回复:一个简单程序,我运行的结果和理论不一致,大家分析问题在哪?
数据加载中...
 
   



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

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