用 C 語言解釋指標和二維陣列
指標是一個儲存另一個變數地址的變數。
特點
指標節省記憶體空間。
由於直接訪問記憶體位置,指標的執行時間更快。
藉助指標,可以高效地訪問記憶體,即動態地分配和釋放記憶體。
指標用於資料結構。
指標和二維陣列
二維陣列的記憶體分配如下 −
int a[3] [3] = {1,2,3,4,5,6,7,8,9};
a[1] [2] = *(1234 + 1*3+2) = *(1234 + 3+2) = *(1234 + 5*4) // 4 is Scale factor = * (1234+20) = *(1254) a[1] [2] = 6
示例
以下是用於指標和二維陣列的 C 程式 −
#include<stdio.h> main ( ){ int a[3] [3], i,j; int *p; clrscr ( ); printf ("Enter elements of 2D array"); for (i=0; i<3; i++){ for (j=0; j<3; j++){ scanf ("%d", &a[i] [j]); } } p = &a[0] [0]; printf ("elements of 2d array are"); for (i=0; i<3; i++){ for (j=0; j<3; j++){ printf ("%d \t", *(p+i*3+j)); } printf ("
"); } getch ( ); }
輸出
當執行上述程式時,將產生以下結果 −
enter elements of 2D array 1 2 3 4 5 6 7 8 9 Elements of 2D array are 1 2 3 4 5 6 7 8 9
廣告