二維陣列與指標之間的基本關係
阿新 • • 發佈:2021-11-20
在c語言中,二維陣列與指標之間中有著密切的關係。
一般來說,二維陣列的表現形式為a[i][j],而在指標中,與這個表現形式相同的指標形式為*(*(a+i)+j);
為什麼要這麼表示呢?
首先我們理解二維陣列,二維陣列就是一個平面,裡面有很多小格子,格子裡面可以儲存元素,一般都是按行按列順序排放。我們不妨轉化一個角度來看:二維陣列就是一維陣列。為什麼這麼說呢?
實際上,二維陣列就是有多個一維陣列元件而成的,把二維陣列看作一維陣列,一維數組裡面的每一個元素,恰好又是一個一維陣列
(電腦繪圖太難了嗚嗚嗚,將就著看吧)
然後我們從一維陣列的方式去理解指標,一維陣列一般a[n],指標上表示通常為*a,那麼,一維數組裡面元素的地址,我們該如何去表示呢?這時的表示方法就應該為*a[i]+j,也可以表示為a[i]+j,這時,我們要取出裡面的元素,就應該為*(*(a+i)+j);這時我們要把“a[i]”這個指標,要當作列來看,第i個就是所謂的第i行的元素,加上j後,就是在第i行的基礎上,在偏移j個位元組單位(看型別),這樣我們就可以得到第i行第j列的元素了。這個時候,二維陣列的運演算法則就可以運用到指標上面來了;