inv是将数组x中下标0到n-1的数据逆置。
void inv(int *x, int n)
{ int temp,*p,*i,*j,m=(n-1)/2; //m为数组中点
i=x; j=x+n-1; p=x+m; //i为数组首部,j为尾部,p为中点
for(;i<=p;i++,j--) //遍历前半部分
{ temp=*i; *i=*j; *j=temp; } //将前半部分数据依次和后半部分对应的数据对换位置
return;
}
void inv(int *x, int n)------------参数一:数组名,即是数组的首地址,参数二:数组长度
{ int temp,*p,*i,*j,m=(n-1)/2;
i=x; j=x+n-1; p=x+m; ----i保存数组第一个(指针),j保存数组最后一个(指针),p保存中间指针
for(;i<=p;i++,j--) -------数组头和数组中间的数值互相靠拢
{ temp=*i; *i=*j; *j=temp; }---------然后互相交换
return;
}
最终的结果就是,数组的前面一半互相交换了,而后面一半则保持不变