当前位置: 代码迷 >> C语言 >> [求助]return语句问题
  详细解决方案

[求助]return语句问题

热度:433   发布时间:2007-07-21 19:46:19.0
还是不明白 z 的值为什么会跑到 c那里去
----------------解决方案--------------------------------------------------------
以下是引用vben在2007-7-21 19:46:19的发言:
还是不明白 z 的值为什么会跑到 c那里去



return语句是用来干什么的?

c=max(a,b) 赋值语句是用来干什么的?

弱弱问:你脑子是用来干什么的
----------------解决方案--------------------------------------------------------

你没看过书?


----------------解决方案--------------------------------------------------------
我看过,但还不理解。。。
可以说一下思路吗?


----------------解决方案--------------------------------------------------------
c=max(a,b)只是和
int max(int x,int y)
有关系啊
x=a y=b
判断谁是最大值
到 这里就不明白了
----------------解决方案--------------------------------------------------------
以下是引用vben在2007-7-21 20:09:53的发言:
c=max(a,b)只是和
int max(int x,int y)
有关系啊
x=a y=b
判断谁是最大值
到 这里就不明白了

你想想数学里的函数

y=ax+b+……

你给一个x 就有一个y 这里其实一样 只是参数多了

新手嘛 理解不了很正常的 谁都有不懂的时候 (其实我也不是很懂)

btw 返回值一般放在EAX里


----------------解决方案--------------------------------------------------------

呵呵,你还不死心啊?


----------------解决方案--------------------------------------------------------
以下是引用vben在2007-7-21 17:47:15的发言:
主函数中c=max(a,b)就是调用前面的int max(int x,int y) 函数
把a,b传给x,y
哪句代码表示把 a,b传给x,y?
还有:
我知道。。简单来说是 int max
(int x,int y)是max的参数...

按5楼说的,这段代码是先执行main() 再执行int max(int x,int y)吗?


每一个C程序都是由main函数开始,到main函数结束的,这与main函数的位子无关。


----------------解决方案--------------------------------------------------------

#include <stdio.h>
int max(int x,int y) //这里定义了一个函数,最前面的int 表示本函数的返回值是整型,max是这个函数的名字,后面我们可以通过名字来调用。
//圆括号中有int x,int y ,这是这个函数的参数。书上把它叫形参。不过,我当时在理解这个形参时费了很大劲。我用另一个说法来解释。
//那就是:你可以把它们看成两个变量,用来接受主函数传递过来的参数。
{
int z;
if(x>y) //如果x大于y
z=x; //把x的值交给z
else
z=y; //否则把y的值交给z
return z; //返回z的值(也就是把这个结果返回给主函数,完成它的最后任务)
}

int main(void) //主函数,C中,不管有多少函数,程序总是从main()函数开始执行。
{
int a,b,c;
scanf("%d%d",&a,&b); //scanf表示从键盘上接收两个变量的值。 两个%d%d表示接收的两个数都是十进制数, &a,&b表示接收的值分别交给a和b.(注意,不要忘了取地址符&)
c=max(a,b); //调用前面定义的max函数,并给它传了两个参数,一个是a的值,另一个是b的值。 max完成任务后把结果返回并赋给c
printf("%d\n",c); //打印c的值
return 0 ;
}

主函数里不可以用return的``,你可以把他放到函数里,,,
程序改为
main()
{
int a,b,c;
scanf("%d%d",&a,&b);
c=max(a,b); //函数调用
printf("%d",c);
}

max(int x,int y) //返回值是int型,前面的int可以不写,形参可以随意写,只要是合法的标识符
{
if(x>y)
return x;
else
rerutn y;
}

[此贴子已经被作者于2007-7-22 9:45:59编辑过]


----------------解决方案--------------------------------------------------------
谢谢dandangui指教
----------------解决方案--------------------------------------------------------
  相关解决方案