分类：电脑/网络-程序设计-C/C++
问题：指针的实参形参的小问题请将函数inv作如下修改：在其函数体内，不 
请将inv 作如下修改：在其函数体内，不再定义局部指针变量。#include<stdio.h>void main(){void inv(int *x,int n);int i,arr[10],*p=arr;printf("The original array:\n");for(i=0;i<10;i++,p++)scanf("%d",p);printf("\n");p=arr;inv(p,10);printf("The array has been inverted:\n");for(请将inv 作如下修改：在其函数体内，不再定义局部指针变量。#include<stdio.h>void main(){void inv(int *x,int n);int i,arr[10],*p=arr;printf("The original array:\n");for(i=0;i<10;i++,p++)scanf("%d",p);printf("\n");p=arr;inv(p,10);printf("The array has been inverted:\n");for(p=arr;p<arr+10;p++)printf("%d",*p);printf("\n");}void inv(int *x,int n){int *p,m,temp,*i,*j;m=(n-1)/2;i=x;j=x+n-1;p=x+m;for( ;i<+p;i++,j--) {temp=*i;*i=*j;*j=temp;}return;}
回答：void inv(int *x,int n)
{int *p,m,temp,*i,*j;
m=(n-1)/2;
i=x;j=x+n-1;p=x+m;
for( ;i<+p;i++,j--)
{temp=*i;*i=*j;*j=temp;}
return;
}
====
void inv(int *x, int n)
{
    int temp;
    int i = 0;
    for(i = 0; i <= (n-1)/2; ++i){
        temp = *(x+i);
        *(x+i) = *(x+n-1-i);
        *(x+n-1-i) = temp;
    }
}