阅读以下程序,该程序功能是将数组 a中的n个数按相反顺序存放,修改子函数inv,把形参数组改为指针
void inv(int a[ ],int n)
{ int temp,*q,i=0;
q=a+n-1;
while(a+i<q)
{temp=*(a+i);*(a+i)=*q;*q=temp;
i++;q--;}
}
main()
{
int a[10]={3,7,9,11,0,6,7,5,4,2} ;
int k,*p;
printf("the original array:\n");
for(p=a,k=0;k<10;k++)
printf("%4d",*p++);
inv(a,10 );
printf("the array has been inverted:\n");
for(p=a,k=0;k<10;k++)
printf("%4d,",*p++);
printf("\n");
}
提示:如果希望主函数和子函数访问同一段内存空间,可以把形参设为地址类型的变量,比如数组,或指针。该题目中,子函数中形参是设为数组,也可以把形参改为指针,相应得子函数内部用到该数组的位置也要改为指针引用。