1.利用指针做形参
#include <stdio.h>
void reverse(int *x,int n);
int main()
{
int i ,a[10]={0,1,2,3,4,5,6,7,8,9};
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("\n");
reverse(a,10);
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
}
void reverse(int *x,int n)
{
int temp,*i,*j,m,*p;
m = (n-1)/2;
i = x; //i指向数组的第一个元素
j = x+n-1; //j指向数组的最后一个元素
p = x+m; // 指向中间,配对....
for(;i<=p;i++,j--)
{
temp = *i;
*i = *j;
*j = temp;
}
}
2.利用数组名做形参
#include <stdio.h>
void reverse(int x[],int n);
int main()
{
int i ,a[10]={0,1,2,3,4,5,6,7,8,9};
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("\n");
reverse(a,10);
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
}
void reverse(int x[],int n)
{
int temp,i,j,m;
m = (n-1)/2;
for(i=0;i<=m;i++)
{
j = n-1-i;
temp = x[i]; //i = 0时,x[0]此时就相当于a[0]的值,他是根据地址索引到值的,类似于指针
x[i] = x[j];
x[j] = temp;
}
}