函数通常可以通过return返回一个值,但是,只能返回一个值。
有时候需要函数同时返回多个值,可以通过传地址返回多个值
例如:
int fun01(int n,int a[])
{
int max = a[0];
int i;
for(i = 1; i < n; i++)
if(max < a[i])
max = a[i];
return max;
}
int fun02(int n,int a[])
{
int min = a[0];
int i;
for(i = 1; i < n; i++)
if(min > a[i])
min = a[i];
return min;
}
void fun(int n,int a[],int* maxp,int* minp)
{
int i;
*maxp = a[0];
*minp = a[0];
for(i = 1; i < n; i++){
if(*maxp < a[i])
*maxp = a[i];
if(*minp > a[i])
*minp = a[i];
}
}
int main(void)
{
int max,min;
int a[5] = {19,34,3,56,45};
#if 0
max = fun01(5,a);
min = fun02(5,a);
#else
fun(5,a,&max,&min);
#endif
printf("max = %d,min = %d\n",max,min);
return 0;
}