利用指標循序存取陣列元素(n像是會移動的)
練習嘗試運用指標處理陣列。 陣列範圍為 v[5] (相當於有0~4一共5個int),在C語言的陣列位址規則中, V[5]空間是不存在的 (超出範圍不可存取), 但是陣列位址是有的 ,也就是超出範圍且不可存取的V[5]位置中會有記憶體位址 可以取得該址 。 在練習中的迴圈條件是當int *n是取址&v[5],迴圈停止。 感覺n就像是會移動的(利用++n),如下: V[0] V[1] V[2] V[3] V[4] n n1 n2 n3 n4 ++n 所以++n以後n就會感覺像是一直向右移動了。 #include<stdio.h> int main(){ int v[5]={2,5,3,1,4}; printf("原始值\n"); for(int i=0;i<5;++i){ printf("%3d ",v[i]); } printf("\n\n"); int* n; for(n=v;n!=&v[5];++n){ *(n)=*(n)+10; } printf("全部加10\n"); for(int i=0;i<5;++i){ printf("%3d ",v[i]); } printf("\n"); return 0; } 不同用途與指令搭配的寫法可以有很多變化。 #include<stdio.h> int main(){ int v[5]={2,5,3,1,4}; int* n=v; printf("%d\n",*n++); printf("%d\n",*n++); printf("%d\n",*n++); printf("%d\n",*n++); printf("%d\n",*n++); return 0; } 搭配while更讓人驚豔 #include<stdio.h> i...