采用函数方法将a数组中5个整数按相反顺序存放
#include<stdio.h>
void inv(int*x,int n);
int main()
{
int i,arr[5],*p=arr;
printf("The original arry:\n");
for(i=0;i<5;i++,p++)
scanf("%d",p);
printf("Output:\n");
//p=arr;
inv(p,5);
printf("The array has been inverted:\n");
for(p=arr;p<arr+5;p++)
printf("%d ",*p);
printf("\n");
return 0;
}
void inv(intx,int n)
{
int i,tmp;
for(i=0;i<n/2;i++)
{
tmp=(x+i);
(x+i)=(x+n-i-1);
*(x+n-i-1)=tmp;
}
}
其中注释的p=arr是什么意思?没有为什么不行呢?这句与for循环中的p=arr有什么区别?麻烦将除了函数交换部分的整个程序讲解一下,尤其是通过指针变量传递数值的部分,谢谢