| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 566 人关注过本帖
标题:C语言程序问题求讲解,关于函数调用问题
只看楼主 加入收藏
幻楚
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2013-5-15
结帖率:0
收藏
已结贴  问题点数:10 回复次数:6 
C语言程序问题求讲解,关于函数调用问题
请教一下各位大神些,我有一个程序始终结果自己算不对,资料书上的,程序如下:
#include<stdio.h>
int c,a=4;
int func(int a,int b)
{
  c=a*b;
  a=b-1;
  b++;
  return(a+b+1);
}
void main ()
{
int b=2,p=0;c=1;
p=func(b,a);
printf("%d,%d,%d,%d\n",a,b,c,p);
}
程序运行时,屏幕上输出结果为:4,2,8,9.
我不太明白为什么p=9,哪位大神能够讲解一下??在这里先谢谢各位了。
搜索更多相关主题的帖子: return C语言 资料 
2013-07-27 23:46
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
收藏
得分:5 
首先看p=func(b,a)和开始时定义的fun(int a,int b)
很明显p=func(b,a)中 b=2;a=4;
此时调用fun函数,因为参数名称不同,所以把p=func(b,a)中 b 的值给 函数fun(int a,int b)中的a
也即是在fun函数中a=2; b=4;
 所以 a=b-1;时a=3;
所以b++之后b=5;
所以a+b+1事其结果为9

[ 本帖最后由 小小程序猿 于 2013-7-28 07:09 编辑 ]

孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-07-28 07:05
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:5 
变量命名太混乱了,形参和实参不要用同样的名字,全局变量和局部变量不要用同样的;否则你的代码查起来就痛苦了。

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-07-28 15:48
幻楚
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2013-5-15
收藏
得分:0 
回复 2楼 小小程序猿
原来是这样,明白了,谢谢指点。。。我就是被a,b弄混了。。

C plus plus
2013-08-05 15:00
幻楚
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2013-5-15
收藏
得分:0 
回复 3楼 pauljames
就是呀。。。。我就是被彻底弄混了。。。。怪不得总是结果算不对。。。

C plus plus
2013-08-05 15:02
幻楚
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2013-5-15
收藏
得分:0 
回复 2楼 小小程序猿
麻烦这位大神看看这个程序,为什么c=1,p=9?程序如下:
#include<stdio.h>
int c, a=4;
int func (int a, int b)
{
   c=a*b;
   a=b-1;
   b++;
  return(a+b+1);
}
void main()
{
  int b=2,p=0;
  c=1;
  p=func(b,a);
  printf("%d,%d,%d,%d\n"a,b,c,p);
}
再次感谢!!!!!!!

C plus plus
2013-08-07 18:14
幻楚
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2013-5-15
收藏
得分:0 
回复 2楼 小小程序猿
不好意思哈,第二个程序,我运行了一下,和我一开始问的程序师一样的,是书上错了,你不用回复第二个程序了,真实不好意思,给你添麻烦了!!!!!

C plus plus
2013-08-08 10:33
快速回复:C语言程序问题求讲解,关于函数调用问题
数据加载中...
 
   



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

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