函数通常可以通过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 = %dn",max,min); return 0; }