就以二維陣列為例。
int a[3][10]
為了深刻理解 a+i 和 a[0] + i 的區別,這裡要引入一種新的視角。
將二維陣列看作乙個一維陣列,只不過這個一維陣列的每乙個元素比較特殊,他們都是子陣列。就拿上邊案例來說,看作乙個a[3],每個元素是乙個包含10個元素的陣列。
這樣,一切就都合情合理了。
簡單來看,格式是:當前陣列名(當前陣列首位址) + i
為方便理解,認為前面的「當前陣列名」始終是個一維陣列。
當其為a,則將a[3][10]也看作一維陣列---->a[3] , a+i 就對應當前陣列三個元素位址(實為二維空間每一行的首位址)。
當其為 a[0],則可看作 a[0]的一維陣列,a[0] + i 則是a[0][i]這個二維陣列的每個元素位址。
以上是正文,接下來寫一下我當初的錯誤想法,僅為記錄,請勿當真。
a[0][0], a[0][1], a[0][2] .... a[0][9] , a[1][0]
而a----> &a[0][0] , a[0] ----> &a[0][0]。
然而,當我用printf("%d") 輸出位址,才發現 乙個差了40,乙個差了4.
二維陣列,多維陣列
一.二維陣列 二維陣列的定義 資料型別 陣列名 常量表示式1 常量表示式2 例如 int array 3 3 二維陣列array 3 3 相當於是由三個含有三個元素的一維陣列所組成的.陣列元素個數怎麼求 兩個維度的下標相乘 訪問二維陣列中的元素 雙下標 多維陣列 三維陣列 陣列名 常量表示式1 常量...
二維陣列,多維陣列,集合。
一 二維陣列 int array new int m,n 表示建立乙個名叫array的int陣列,這個陣列有m個一維陣列,每個一維陣列有n個因素.array m,n 表示索引號是為第m的陣列,索引號是n的那個因素。與for迴圈的巢狀相呼應,m個陣列表示有m次外迴圈,n個因素表示有n次內迴圈。二 多維...
多維陣列的使用(二維陣列)
規定 二維陣列分為外層陣列的元素,內層陣列的元素 1 理解 對於二維陣列的理解,我們可以看成是一維陣列array1又作為另乙個一維陣列array2的元素而存在。從陣列底層的執行機制來看,其實沒有多維陣列。陣列屬於引用資料型別 陣列的元素也可以是引用資料型別 乙個一維陣列a的元素如果還是乙個一維陣列型...