改写程序,将数组 a中的n个数按相反顺序存放,请用指针的方法重写^_^

阅读以下程序,该程序功能是将数组 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");
}
提示:如果希望主函数和子函数访问同一段内存空间,可以把形参设为地址类型的变量,比如数组,或指针。该题目中,子函数中形参是设为数组,也可以把形参改为指针,相应得子函数内部用到该数组的位置也要改为指针引用。

void inv(int a[ ],int n) -> void inv(int *a,int n) 就够了

a既是数组的名字 也是第一个数组成员的地址
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-06-12
void inv(int a[ ],int n) -> void inv(int *a,int n)
第2个回答  2009-06-11
25
相似回答