资源描述:
《变量作为函数的参数进行传递.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、单元二变量作为函数的参数进行传递1、普通变量作为函数的参数进行传递1.1函数参数及其传递方式形参与实参形式参数:定义函数时函数名后面括号中的变量名实际参数:调用函数时函数名后面括号中的表达式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,in
2、ty){intz;z=x>y?x:y;return(z);}形参实参1、main()2、{inta,b;3、intc;4、a=3;b=23;5、c=sum(a,b);6、printf(“sumis%d",c);7、}intsum(intx,inty){intz;z=x+y;return(z);}x=a323y=b等价于z=3+23;等价于sum=z;intsum(intx,inty){intz;z=x+y;return(z);}main(){inta,b;intc;a=3;b=23;c=sum(a
3、,b);printf(“sumis%d",c);}1.2函数参数及其传递方式形参与实参1、实参必须有确定的值说明:main(){inta,b,c;scanf("%d,%d",&a,&b);c=sum(a,b);printf(“sumis%d",c);}sum(intx,inty){intz;z=x+y;return(z);}main(){inta,b,c;a=23;b=24;c=sum(a,b);printf(“sumis%d",c);}2、形参必须指定类型intsum(intx,inty){in
4、tz;z=x+y;return(z);}intxinty3、形参与实参类型一致,个数相同sum(intx,inty,floatz){intd;d=x+y+z;return(d);}main(){inta,b,c;a=23;b=34;c=sum(a,b);printf(“sumis%d",c);}sum(intx,inty,floatz){intd;d=x+y+z;return(d);}main(){inta=23,b=34,c,f;c=sum(a,b,f);printf(“sumis%d",c);}4
5、、形参在函数被调用前不占存储空间;函数调用时为形参分配存储空间;调用结束,空间释放。main(){inta,b,c;a=23;b=34;sum(a,b);printf(“sumis%d",c);}sum(intx,inty){intz;z=x+y;return(z);}xxxxxxxxxxxxabc2334xyzc=233457回收空间回收空间回收空间回收空间回收空间回收空间main(){inta,b,c;a=23;b=34;c=sum(a,b);printf(“sumis%d",c);}sum(in
6、tx,inty){intz;z=x+y;return(z);}575、如果实参是变量,则实参和形参的名字可以相同也可以不同,互不影响,因为它们存储数据的空间不同。main(){inta,b,c;a=23;b=34;sum(a,b);printf(“sumis%d",c);}sum(inta,intb){intz;z=a+b;return(z);}xxxxxxxxxxxxabc2334abzc=233457回收空间回收空间回收空间回收空间回收空间回收空间main(){inta,b,c;a=23;b=34
7、;c=sum(a,b);printf(“sumis%d",c);}sum(inta,intb){intz;z=a+b;return(z);}57例1计算x的立方#includefloatc(floatx){return(x*x*x);}main(){floata,p;printf("Pleaseinputvalueofa:");scanf("%f",&a);p=c(a);printf(”Cubeof%.4fis%.4f",a,p);}xap××××1.21.21.728内存的变化
8、情况运行情况:Pleaseinputvalueofa:1.21.3参数传递方式值传递方式方式:函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值特点:形参与实参占用不同的内存单元单向传递实参可以是常量、变量或表达式,但必须有确定的值。711x:y:调用前:调用结束:711x:y:例2交换两个数#includemain(){intx=7,y=11;swap(x,y);printf("%