1. 数组元素作为函数的参数
一维数组元素可以直接作为函数实参使用,其用法与变量相同。
int max(int a,int b);
int A[5]={1,2,3,4,5} , c=2, x;
x=max(c,-10); //使用变量作为函数实参
x=max(A[2],-10); //使用数组元素作为函数实参
2. 整个数组作为函数的参数
数组作为函数的形参,基本形式为:
返回类型 函数名(类型 数组名[常量表达式],...)
{
函数体
}
double average(double A[100],int n)
{
… //函数体
}
数组参数的传递机制
►如果实参使用数组名调用,本质上是将这个数组的首地址传递到形参中。
►尽管数组数据很多,但它们均从一个首地址连续存放,这个首地址对应的正是数组名。
void fun(int A[10],int n)
{ ……
A[0]=10;
}
int main()
{
int a[10]={1,2,3,4,5} , x=5;
fun(a,x); //实参分别是数组和整型变量
}
数组实参a传的是数组首地址,形参A定义为数组形式,它现在的地址与实参数组a一样,则本质上形参数组A就是实参数组a(内存中两个对象所处位置相同,则它们实为同一个对象)。
如:编写函数求两个数的最大值和最小值
#include<iostream>
using namespace std;
void m(int b[2],int x,int y)
{
b[0]=(x>y)? x:y;
b[1]=(x<y)?x:y;
}
int main()
{ int x,y,a[2];
cin>>x>>y;
m(a,x,y);
cout<<"max="<<a[0]<<",min="<<a[1]<<endl;
return 0;
}