//找出数组中最大值,数组和指针的关系
#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;
}