| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1959 人关注过本帖
标题:同一个程序,用TC2.0和CFREE5.0运行出来的结果不同,什么情况,请教。
只看楼主 加入收藏
csz9981
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2013-5-16
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
同一个程序,用TC2.0和CFREE5.0运行出来的结果不同,什么情况,请教。
同一个程序,用TC2.0和CFREE5.0运行出来的结果不同,什么情况,请教。
main()
{
    int i,j,p,q1,q2,q3,q4;
    i=5;
    p=(i++)+(i++)+(i++)+(i++);
  j=5;
    q1=++j;
    j=5;
    q2=(++j)+(++j);
    j=5;
    q3=(++j)+(++j)+(++j);
    j=5;
    q4=(++j)+(++j)+(++j)+(++j);
    printf("%d,%d,%d,%d,%d,%d",p,i,q1,q2,q3,q4);
}


C-FREE  TC
20      20
9       9
6       6
14      14
22      24
31      36


这个是课本上一个例题,课本上的答案是TC的。
同一个程序,用不同的工具运行,TC2.0和CFREE5.0,运行出来的结果为什么会不同呢?请教。

对于新手,练习C语言,是用TC好,还是用C-FREE好?

[此贴子已经被作者于2016-12-11 19:08编辑过]

搜索更多相关主题的帖子: 课本 
2016-12-11 19:05
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:633
专家分:3045
注 册:2011-4-22
收藏
得分:7 
dev-c++输出结果为26,9,6,14,22,31.
个人理解,是编译时解释不一样。比如后加加:“p=(i++)+(i++)+(i++)+(i++)”这一句,如果解释为i运行过就加一,则这一句的含义为 p=5+6+7+8=26
如果解释为,这一句运行过再加一,则这一句的含义为p=5+5+5+5=20。后面i的值是几就与p无关了。
2016-12-11 19:34
csz9981
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2013-5-16
收藏
得分:0 
回复 2楼 zbjzbj
j和p1p2p3p4,这几句应该怎样理解,为什么有差别呢?
2016-12-11 19:37
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:7 
这方面我浅浅接触过相关资料,一般编程是忌讳一条等式同一个变量同时多次出现多个自加(减)这种用法的,因为不同编译器处理这些行为可能不同,从而导致编译结果不同

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-11 20:28
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:633
专家分:3045
注 册:2011-4-22
收藏
得分:0 
回复 3楼 csz9981
至于q4=(++j)+(++j)+(++j)+(++j);
如果理解为整句运行前先加一,那得出q4之前j已经是9,q4=9+9+9+9=36
至于为什么是31我不好解释。我有一个推测是q4先做2目运算,q4=(++j)+(++j)=7+7=14,然后q4=q4 + (++j) = 14+8=22,再q4=q4 + (++j)= 22 + 9=31,对不对呢?我这里没法跟踪,所以还请大神解答。
2016-12-11 20:42
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:7 
这就是传说中的“未定义行为” 纠结这些问题 纯属浪费时间

DO IT YOURSELF !
2016-12-11 20:44
csz9981
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2013-5-16
收藏
得分:0 
回复 6楼 wp231957
潭浩强,课本 里一个例题。
2016-12-11 22:28
csz9981
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2013-5-16
收藏
得分:0 
回复 5楼 zbjzbj
不错,有意思。
2016-12-11 22:29
csz9981
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2013-5-16
收藏
得分:0 
感谢,大家。
2016-12-11 22:30
快速回复:同一个程序,用TC2.0和CFREE5.0运行出来的结果不同,什么情况,请教。
数据加载中...
 
   



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

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