2 数组和指针的关系

//找出数组中最大值,数组和指针的关系

#include <stdio.h>

int max(    int *,    int    );

main() {

    int Largest;
    int a[5] = { 1,3,4,11,2 };
    int* pa = a;                          //a本身就是地址;不能用&a ,是二次指针

    //printf("%x\n", &a);                //a取地址==a[0]取地址==pa
    //printf("%x\n", &a[0]);
    //printf("%x\n",pa);

    //printf("*pa=%d\n", *pa);                                // 1
    //printf("*pa+1=%d\n", *pa + 1);                // 2
    //printf("*(pa+1)=%d\n", *(pa + 1));        // 3

    
    //Largest= max(pa,5);            //以下4个等效
    //Largest = max(a, 5);                 
    Largest = max(&a, 5);         
    //Largest = max(&a[0], 5);

    printf("%d", Largest);        

}


int max(int *p,int n)  
// 同 int max(int a[], int n) ,*p=a 
{
    //printf("%d %d %d \n", *p,*(p+1),*(p+2));

    int i, max=*p;
    for (i = 0; i < n; i++) {
        if (max < *(++p))
            max = *p;
    
    }
    return max; 
}

 

posted @ 2020-05-25 23:28  abel2020  阅读(83)  评论(0编辑  收藏  举报