字体
第(6/7)页
关灯
   存书签 书架管理 返回目录
for(i=0;i<10;i++,p++)

    scanf("%d",p);

    p=number;

    max_min_value(p,10);

    printf("\nmax=%d,min=%d\n",max,min);

    }

    归纳起来,如果有一个实参数组,想在函数中改变此数组的元素的值,实参与形参的对应关

    系有以下4种:

    1) 形参和实参都是数组名。

    main()

    {int a[10];

    ……

    f(a,10)

    ……

    }

    a和x指的是同一组数组。

    2) 实用数组,形参用指针变量。

    main()

    {int a[10];

    ……

    f(a,10)

    ……

    }

    3) 实参、型参都用指针变量。

    4) 实参为指针变量,型参为数组名。

    谭浩强      C 语言程序设计               2001 年 5 月 1 日

    f(int x[],int n)

    {

    ……

    }

    f(int *x,int n)

    {

    ……

    }

    【例 10.20】用实参指针变量改写将 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;

    }

    main()

    {int i,arr[10]={3,7,9,11,0,6,7,5,4,2},*p;

    p=arr;

    printf("The original array:\n");

    for(i=0;i<10;i++,p++)

    printf("%d,",*p);

    printf("\n");

    p=arr;

    inv(p,10);

    printf("The array has benn inverted:\n");

    for(p=arr;p
    printf("%d,",*p);

    printf("\n");

    }

    注意:main 函数中的指针变量 p 是有确定值的。即如果用指针变作实参,必须现使指针变

    量有确定值,指向一个已定义的数组。

    【例 10.21】用选择法对 10 个整数排序。

    main()

    谭浩强      C 语言程序设计               2001 年 5 月 1 日

    {int *p,i,a[10]={3,7,9,11,0,6,7,5,4,2};

    printf("The original array:\n");

    for(i=0;i<10;
上一页 目录 下一页