用数组名做函数参数(转)

本文介绍了在C语言中如何使用数组名作为函数参数,通过示例解释了实参数组和形参数组的关系。指出数组名在函数调用中传递的是数组的首地址,而不是元素值,因此形参数组的变化会影响到实参数组。同时讨论了形参数组不指定大小的用法,并提供了一个选择排序的例子来展示形参数组改变实参数组的原理。
摘要由CSDN通过智能技术生成

可以用数组名作函数参数,此时实参与形参都应用数组名(或指针变量)。

2:有一个一维数组score,内放10个学生成绩,求平均成绩。

float average(float array[10]){

      

      int i;

      float aver,sum=array[0];   

           for(i=1; i<10; i++)sum=sum+array[i];

           aver=sum/10;

           return aver;

}

 

main(){

      

    float score[10],aver;     

         int i;

         printf("input 10 scores:/n");

         for(i=0; i<10; i++)scanf("%f",&score[i]);

         printf("/n");

         aver=average(score);//数组名作为函数参数

         printf("average score is %5.2f",aver);

}

 

 

说明:

l         用数组名称作函数参数,应该在主调函数和被调函数分别定义数组,本例中array是形参数组名,score是实参数组名,分别在其所在的函数中定义,不能只在一方定义。

l         实参数组与形参数组类型应该保持一致(这里都为float型),如不一致,结果将出错。

l         在被调用函数中声明了形参数组的大小为10,但在实际上,指定其大小是不起任何作用的,因为C编译器对形参数组大小不做检查,只是检查实参数组的首地址传给形参数组。因此,score[n]array[n]指的是同一单元。

l         形参数组也可以不指定大小,在定义数组时在数组名后面跟一个空的方括号,有时为了在被调用函数中处理数组元素的需要,可以另设一个参数,传递需要处理的数组元素的个数,上例可以改写为下面的形式:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值