指標7(指標與二維陣列)
阿新 • • 發佈:2018-12-09
先來道例題
#include<stdio.h>
int main()
{int a[3][4]={{0,1,2,3},{10,11,12,13},{20,21,22,23}};
int *p,i,j;
p=&a[0][0];
printf("\n");
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
{printf("%4d",*p++);
}
printf("\n");
}
return 0;
}
執行結果
對於m行n列的二維陣列a[m][n],其陣列元素a[i][j]在陣列中相對位置的計算公式為:
in+j
例如上體中a[2][3]的地址為p+24+3,即p+11,所以a[2][3]就可以表示為*(p+11)
樓主感覺用指標表示二維陣列的位置好麻煩。。。
下一道例題
題目:應用指標變數,輸出二維陣列a[3][4]={{0,1,2,3},{10,11,12,13},{20,21,22,23}中任一元素
程式碼如下
#include<stdio.h> int main() {int a[3][4]={{0,1,2,3},{10,11,12,13},{20,21,22,23}}; int *p,i,j; p=&a[0][0]; printf("\nInput i and j:");//i代表行,j代表列 scanf("%d%d",&i,&j); printf("a[%d][%d]=%d\n",i,j,*(p+(i-1)*4)+(j-1)); return 0; }
執行結果
下一篇 指標8(應用指標向函式傳遞陣列)