数组作为函数参数 |
您所在的位置:网站首页 › 数组作为函数参数用法总结 › 数组作为函数参数 |
调用有参函数时,需要提供实参, 实参可以是常量、变量或表达式。 数组元素的作用与变量相当,一般来说,凡是变量可以出现的地方,都可以用数组元素代替。 因此,数组元素也可以用作函数实参,其用法与变量相同,向形参传递数组元素的值。 此外,数组名也可以用作形参和实参,传递的是数组第一个元素的地址。 数组元素作函数实参数组元素可以用作函数实参,但不可以用作形参。 因为形参是在函数被调用时临时分配存储单元的,不可能为一个数组元素单独分配存储单元(数组是一个整体,在内存中占连续的一段存储单元) 在用数组元素做函数实参时,把实参的值传给形参,是”值传递“方式。 数据传递的方向是从实参传到形参,单向传递。 下面我们来看一个程序: 输入10个数,要求输出其中最大的,并说出该数是第几个数。 #include int main() { int max(int x, int y); int a[10], m, n, i; for (i = 0; i m = max(m, a[i]); n = i; } } printf("最大的数是%d\n在第%d个数",m, n + 1); return 0; } int max(int x, int y) { return(x > y ? x : y); }这个程序先对数组进行赋值,使用for循环 之后就是进行比较,拿第一个数和第二个数比较,选出大的数,与第三个数进行比较, 如是类推,一直比较完,而对应的位置也是不会改变的。 一维数组名作函数参数数组名也可以作函数参数,形参和实参都可以。 在这里我们来区分一下用数组元素作实参和数组名作函数实参: 用数组元素作实参时,向形参变量传递的是数组元素的值; 用数组名作函数实参时, 向形参(数组名或指针变量)传递的是数组首元素的地址。 这里我们继续来举一个例子。 程序:有一个一维数组score,内存10个学生成绩,求平均成绩。 我们先来看一下代码: #include int main() { float average(float array[10]); float score[10],aver; int i; printf("input 10 scores:\n"); for(i=0;i float average(float array[],int n); float score1[5]={98.5,97,91.5,60,55}; float score2[10]={67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5}; printf(" The average of class A is %6.2f\n",average(score1,5)); printf(" The average of class B is %6.2f\n",average(score2,10)); return 0; } float average(float array[],int n) { int i; float aver,sum=array[0]; for(i=1;i int i,j,k,t; for(i=0;i k=i; for(j=i+1;j{1,3,5,7},{2,4,6,8},{15,17,34,12}}; printf("Max value is %d\n",max_value(a)); return 0; } int max_value(int array[][4]) { int i,j,max; max=array[0][0]; for(i=0;i |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |