| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1132 人关注过本帖
标题:初学c碰到难题,请高手指点
只看楼主 加入收藏
sk2363805
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-12-31
收藏
 问题点数:0 回复次数:7 
初学c碰到难题,请高手指点
main()
{int i=3;
printf("%d",i++*++i+i--*--i);
}
main()
{int i=3,j;
j=i++*++i+i--*--i;
printf("%d",j);
}
以上输出的结果怎么不一样呀!!!想不明白
搜索更多相关主题的帖子: 难题 初学 
2007-12-31 22:48
wubizao
Rank: 1
来 自:荆州长大电信
等 级:新手上路
帖 子:223
专家分:0
注 册:2006-6-24
收藏
得分:0 
按我理解
这是不良代码
结果依据编译器

在路上走,看见了C,从此爱上了她
2008-01-01 09:01
随心
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:12
帖 子:2577
专家分:250
注 册:2007-8-12
收藏
得分:0 
把你的结果发上来
还有你的风格十分糟糕

#include <stdio.h>
#include <stdlib.h>

int main()
{
        int i=3;
        printf("%d\n",i++*++i+i--*--i);
        system("pause");
        return 0;
}

#if 0
int main()
{
        int i=3,j;
        j=i++*++i+i--*--i;
        printf("%d\n",j);
        system("pause");
        return 0;
}
#endif

天之道,利而不害。圣人之道,为而不争。信言不美,美言不信。善者不辩,辩者不善。知者不博,博者不知。
2008-01-01 09:09
sk2363805
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-12-31
收藏
得分:0 
第一个结果是30  第二个结果是48
我初学,你批评得好尖锐
2008-01-01 11:40
岳C
Rank: 1
等 级:禁止发言
帖 子:354
专家分:0
注 册:2007-7-16
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

坚持到底
2008-01-01 13:02
phoenix_dw
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-1-1
收藏
得分:0 
第一种写法 在不同的系统和环境下 会得到不同的结果 对于这个 大多数系统的求值顺序都是自右至左 小部分的不同
这种写法不宜提倡(应用中不会出现)

第二种写法很好 是一种避免歧义的方法 这种习惯值得学习

我也是初学者 只能这样解释 有不对甚至错误的地方 望大家指出
举个简单的例子把:)
                      (i++)+(i++)+(i++)
(1)有些系统会自左至右 求完每一个括号后i自加 因而得出3+4+5=12
(2)而TC,MS C等把3作为所有i的值得到9   然后i自加三次得到6
如果你要得到12  就要无歧义改写语句
i=3;
a=i++;
b=i++;
c=i++;
d=a+b+c;
2008-01-01 15:31
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
就目前而言,TC不是新手用的...新手用TC加上老谭的教程会造成很多不良的编码风格.
个人比较推荐用freec和dev-cpp,ms的的vc就不必了.楼主的这种问题是C的一种缺陷,
所以我们编码时要避免这种编码风格.英雄时代已经过去了.
2008-01-01 15:46
knaruto
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-1-9
收藏
得分:0 
没看错滴话第一个先全部自加和自减是20吧
第二个++i先自加i++不变--i自减i--不变
算出结果自然不同
而且的确风格很恶劣
{    }与主体分开难道不是会让大家都感觉舒服吗
2008-01-09 05:39
快速回复:初学c碰到难题,请高手指点
数据加载中...
 
   



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

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