《(1.28)--7.3函数间数组做参数传递.ppt》由会员分享,可在线阅读,更多相关《(1.28)--7.3函数间数组做参数传递.ppt(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第七章第七章 函数函数编程之初体验 语言程序设计第七章 函数7.3 7.3 函数间数组做参数的传递函数间数组做参数的传递 语言程序设计第七章 函数数组数组名做函数参数是怎样传递的?名做函数参数是怎样传递的?普通变量做参数,实参向对形参的数据传递是“值传递”,单向传递,只由实参传给形参,而不能由形参传回来给实参。同样,数组元素做参数,实参向对形参的数据传递也是单向传递的“值传递”。数组名可以作实参:由于数组名代表首元素的地址,因此当数组名作实参时,形参也必须是一个能够存储地址的变量,即为数组名或指针变量。语言程序设计第七章 函数数组数组名做函数参数传递实例名做函数参数传递实例1 1:void v
2、oid fun(int fun(int b10)b10)int i;int i;for(i=2;i10;i for(i=2;i10;i+)+)bi bi=i+10;=i+10;012345678912345678910int main()int main()int a10=1,2,3,4,5,6,7,8,9,10,i;int a10=1,2,3,4,5,6,7,8,9,10,i;fun(a);fun(a);for(i=0;i10;i+)for(i=0;i10;i+)printf printf(“%d ”,ai);(“%d ”,ai);return 0;return 0;实际参数实际参数a a形
3、式参数形式参数b b由于传递的是数组首元素的地址,因此实参数组a和形参数组b占用同一段内存。如果在被调函数中修改数组b的元素值,则数组a中的元素值也同样发生改变。1213141516171819 语言程序设计第七章 函数数组名做函数参数传递数组名做函数参数传递实例实例2 2:数组数组a a中存放一个中存放一个学生学生1010门门课的成绩,求该生的平均成绩课的成绩,求该生的平均成绩。#includeincludevoid mainvoid main()()double double a10,y;a10,y;int int i;i;for(i=0;i10;ifor(i=0;i10;i+)+)sca
4、nf scanf(“%lf”,&ai(“%lf”,&ai););y=avg(a);y=avg(a);printf(“%lf printf(“%lf”,y);”,y);/*a/*a存放成绩,存放成绩,y y为平均值为平均值*/*/*/*输入输入1010个成绩个成绩*/*/*/*调用调用avgavg函数求数组函数求数组a a的平均值的平均值*/*/语言程序设计第七章 函数数组数组a a中存放一个学生中存放一个学生1010门课的成绩,求该生的平均成绩门课的成绩,求该生的平均成绩。double avg(double a10)double sum=0,average;/*sum是和,average是平均值*/int i;for(i=0;i10;i+)/*循环求和*/sum+=ai;average=sum/10;/*求平均值*/return average;/*返回平均值*/形式参数的维数可以省略 语言程序设计第七章 函数关于函数间参数传递的几点说明:1.调用有参函数时,主调函数中的实际参数会把值传递给被调函数的形式参数。2.实参和形参的个数应相等和类型应相同。3.普通变量做参数,实参向对形参的数据传递是“值传递”,单向传递,只由实参传给形参,而不能由形参传回来给实参。4.数组名做参数传递,传递的是数组的首地址,实参和形参公用同一段地址,改变形参的内容、实参也会相应改变。