《程序设计基础-C语言》函数的参数传递和嵌套(九)_第1页
《程序设计基础-C语言》函数的参数传递和嵌套(九)_第2页
《程序设计基础-C语言》函数的参数传递和嵌套(九)_第3页
《程序设计基础-C语言》函数的参数传递和嵌套(九)_第4页
《程序设计基础-C语言》函数的参数传递和嵌套(九)_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

形参与实参1、形式参数:定义函数时函数名后面括号中的变量名;2、实际参数:调用函数时函数名后面括号中的表达式或变量名。c=max(a,b);(main函数)(max函数)max(intx,inty){intz;z=x>y?x:y;return(z);}例比较两个数并输出大者main(){inta,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("Maxis%d",c);}max(intx,inty){intz;z=x>y?x:y;return(z);}形参实参函数的参数及传递方式值传递方式

函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值。特点:1、形参与实参占用不同的内存单元2、单向值传递:只能由实参传向形参,而形参的值不会影响到实参的值。函数的参数值传递方式/*值传递举例*/#include<stdio.h>main(){intx=7,y=11;printf("x=%d,y=%d\n",x,y);

swap(x,y);printf("x=%d,y=%d\n",x,y);}swap(inta,intb){inttemp;temp=a;a=b;b=temp;}值传递方式举例例子图解711x:y:调用前:调用:711a:b:711x:y:swap:711x:y:117a:b:temp调用结束:711x:y:嵌套调用C规定:函数定义不可嵌套,但可以嵌套调用函数函数的嵌套调用main()调用函数a结束a函数b函数调用函数b

#include<stdio.h>voidmain(){inta,b,c,d;scanf("%d%d%d",&a,&b,&c);d=dif(a,b,c);printf("Max-Min=%d\n",d);}/*求最大与最小之差*/intdif(intx,inty,intz){returnmax(x,y,z)-min(x,y,z);}/*求最大数*/intmax(intx,inty,intz){intr;r=x>y?x:y;return(r>z?r:z);}/*求最小数*/intmin(intx,inty,intz){intr;r=x<y?x:y;return(r<z?r:z);}函数的嵌套调用举例求三个数中最大数和最小数的差额main()调用函数dif输出结束dif函数max函数调用函数max调用函数minmin函数定义:函数直接或间接的调用自身叫函数的递归调用调f2调f1f1()f2()f()调fintf(intx){inty,z;……

z=f(y);…….return(2*z);}intf1(intx){inty,z;……

z=f2(y);…….return(2*z);}intf2(intt){inta,c;……

c=f1(a);…….return(3+c);}函数的递归调用说明:C编译系统对递归函数的自调用次数没有限制,每调用函数一次,在内存堆栈区分配空间,用于存放函数变量、返回值等信息,所以递归次数过多,可能引起堆栈溢出#include<stdio.h>intfac(intn){intf;if(n<0)printf("error!");elseif(n==0||n==1)f=1;elsef=fac(n-1)*n;return(f);}main(){intn,y;printf("Inputaint

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论