最近在學習c下多維陣列指標的時候,發現個小的技巧。比如定義乙個二維陣列,int a[3][4],如果想引用第乙個元素,直接**a,就可以了。當然如果定義三維的陣列,引用第乙個元素,直接***a。多維的照此推理就可以了。
如果在程式中使用指向陣列元素的指標變數,對其賦初值時,要使用元素位址,不能使用行的位址。如果要對引用二維陣列元素a[r][l],可以使用*(a[r]+l);如果是引用三維陣列a[h][r][l],可以使用*(a[h][r]+l);參考程式:
/*多維陣列指標參考程式*/
#include
void main(void)
,b[2][2][3] = ;
p = a[0] + 0;/*指向陣列元素的指標變數,對其賦初值時,要使用元素位址*/
printf("a[0][0] = %d/n",**a);/*引用第乙個元素,直接**a*/
printf("a[1][2] = %d/n",*(a[1] + 2));/*引用二維陣列元素a[r][l],可以使用*(a[r]+l)*/
printf("a[1][1] = %d/n",*(p+(1*3)+1));
p = b[0][0] + 0;
printf("b[0][0][0] = %d/n",***b);
printf("b[1][0][1] = %d/n",*(b[1][0]+1));/*引用三維陣列a[h][r][l],可以使用*(a[h][r]+l)*/
printf("b[1][1][1] = %d/n",*(p+1*6+1*3+1));
}輸出結果如下:
a[0][0] = 1
a[1][2] = 6
a[1][1] = 5
b[0][0][0] = 1
b[1][0][1] = 8
b[1][1][1] = 11
C語言指向多維陣列的指標
設有整型二維陣列a 3 4 如下 0 1 2 3 4 5 6 7 8 9 10 11 它的定義為 int a 3 4 設陣列a的首位址為1000,各下標變數的首位址及其值如圖所示。前面介紹過,c語言允許把乙個二維陣列分解為多個一維陣列來處理。因此陣列a可分解為三個一維陣列,即a 0 a 1 a 2 ...
C語言多維陣列的指標應用
要談多維陣列,首先先了解下一維陣列的指標應用。int arr 10 通過上述 我們定義了乙個長度為10的整形陣列。int為陣列的基型別,他確定了每個陣列元素所占用的空間。在visual studio編譯器中int佔4個位元組。所以arr陣列總共佔據了40個位元組的空間。在陣列定義時,陣列所需要的空間...
C語言中指標和多維陣列
陣列是乙個特殊的指標,多維陣列也是更為複雜的陣列,它們的關係是什麼樣的呢?我們通過乙個簡單的例子來比較形象的了解指標和多維陣列 int a 2 3 這是乙個2 3的二維陣列,首先我們清楚陣列名就是指向陣列首元素的常量指標 它不可以指向其他部分,可以對指向的元素進行任意修改 其次c語言中所謂的多維陣列...