在函式間傳遞陣列 (使用指標練習)

指標中,當完成取址後(int *n=v『陣列v』),所謂下標運算子括弧[ ]象徵意義就例如:
int v[3];
int *n=v;
n[0]=0;
上面的n[0]=0,就像是n[a]相當於*(n+a),所以當n[2]=60;則v[2]=60(n已取址v),所以n[0]=0就是把0賦予*(n+0)所索引的位址內容【也就是v[0]】。
經過指標int *n=v取址v陣列後:
n[0]==*n;
n[1]==*(n+1);
n[2]==*(n+2);


#include<stdio.h>
int max(int *a,int n){
int max=*a;//*a或a[0]都一樣,因為都是取址主程式V陣列的V[0]位址
int i;
for(i=1;i<n;++i){
if(*(a+i)>max){
max=*(a+i);
}
}
return max;
}
int main(){
int v[3],i,n;
n=sizeof(v)/4;
for(i=0;i<n;++i){
scanf("%d",&v[i]);
}
printf("MAX:%d",max(v,n));
return 0;
}

留言