| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 407 人关注过本帖
标题:关于函数调用练习时出现的问题??
只看楼主 加入收藏
小说贝斯
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2007-8-4
收藏
 问题点数:0 回复次数:4 
关于函数调用练习时出现的问题??
main()
{ int i=2,p;
p=f(i, i++);
printf("%d",p);
}
int f(int a, int b)
{ int c;
if(a>b) c=1;
else if(a==b) c=0;
else c=-1;
return(c);
} 结果为1

main()
{ int i=2,p;
p=f(i,++i);
printf("%d",p);
}
int f(int a, int b)
{ int c;
if(a>b) c=1;
else if(a==b) c=0;
else c=-1;
return(c);
} 结果为0
小弟是个初学者,对这两个程序的结果不太明白,希望高手进来指点指点!!
搜索更多相关主题的帖子: 函数 练习 
2007-08-07 18:19
viky2003
Rank: 5Rank: 5
等 级:职业侠客
帖 子:375
专家分:383
注 册:2007-4-11
收藏
得分:0 
undefined express!!!没有明确定义的表达式!!!!!不同的编译器结果不同!!没有意思的讨论!!

要练习算法就来http:///!!有挑战哦!!
2007-08-07 18:30
小说贝斯
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2007-8-4
收藏
得分:0 

说得有些不明白,不过还是谢谢哦!


Standing on Shoulders of Giants
2007-08-07 18:53
viky2003
Rank: 5Rank: 5
等 级:职业侠客
帖 子:375
专家分:383
注 册:2007-4-11
收藏
得分:0 
就是说:f(i,i++);这两个参数在编译器里面没有明确定义先计算第一个参数还是先计算第二个参数!!在c/c++里面没有这样的运算顺序规则!!


当一个操作符中的两个多个操作数是同一个对象并改变其值是时,就会出现这样的情况。
编译器检查不出来的!!如f(i++)*g(i)这样的式子!!

要练习算法就来http:///!!有挑战哦!!
2007-08-07 19:07
小说贝斯
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2007-8-4
收藏
得分:0 
原来是不同的编程工具不同的计算顺序哦!
那我用的是turbo工具,就是说计算顺序是自右向左的了!
明白了,谢谢了!

Standing on Shoulders of Giants
2007-08-07 19:44
快速回复:关于函数调用练习时出现的问题??
数据加载中...
 
   



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

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