首页 > 编程知识 正文

若数组名作为函数调用的实参,形参数组和实参数组

时间:2023-05-06 09:26:24 阅读:155223 作者:4477

参考链接:

作为函数参数的数组名称

指针数组和数组指针、2维数组和2次指针作为形参和实参

C语言学习笔记——指针,将数组作为函数参数传递的方式

在一维数组中,数组名称表示数组中第一个元素的地址。 C语言调用函数时采用“传递值”方式,使用变量名作为函数参数时传递变量值,使用数组名作为函数参数时传递数组第一个元素的地址,参数必须为指针变量。 在以下函数中,可以将a用作数组名称,直接用作reverse的参数。 即使在main函数中定义指针变量*p使p=a,并写为reverse(p,9 ),结果也是一样的。 形参是和a相同的指针变量。 # include stdio.hvoidreverse (int * p,int n ); int i; inta [ 10 ]={ 0,1,2,3,4,5,6,7,8,9 }; intmain(void ) for ) I=0; i10; I ) {printf('%dn ',a[i] ); }reverse(a,9 ); 返回0; }voidreverse(int*p,int n ) ) intI; for(I=n; i-1; I--}{printf('%dn ',*(pI ); }运行结果:

01234567899876543210再举一个例子。 以下代码的四次打印输出结果相同。 float *a=grade; 浮动* a; a=grade; 效果相同# include stdio.h # definen3float average1(float * g ); 浮动高度2 (浮动高度[ n ] ); int main () ) float grade [ n ]={ 60,75,80 }; float * a=grade; //数组名称类型为float *printf (学生的平均成绩为%.3f(n )、average1(grade ) ); //数组名称传递给指针printf ('学生的平均成绩为%.3fn ',average2(grade ) ); //数组名称传递给数组名称printf ('学生的平均成绩为%.3f(n ),average2(a ) a ) ); //指针传递给数组名称printf ('学生的平均成绩为%.3f(n ),average1(a ) ); //将指针传递给指针的}floataverage1(float*g ) float *类型的指针参数) {float *a=g; 浮动ave,sum=0; for (; ga N; g ) {sum=*g; }return ave=sum/N; }{floataverage2(floatgrade[n] ) float ave,sum=0; for(intI=0; iN; I ) {sum=grade[i]; }return ave=sum/N; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。