關於C語音二維陣列的進一步理解

2021-08-03 18:36:36 字數 665 閱讀 4669

最近又**了c語言中的二維陣列。又有了新的收穫。所有mark一下。

一維陣列還好理解,二維陣列實質就是一維陣列,然而其單位不是c語言中基本的型別了,而是乙個一維陣列。那麼三維陣列可以理解為一位陣列其單位為二維陣列。

先看下面的列子慢慢體會。

可以看出int a[3][4] ,其實質就是int[4] a[3] .其型別可以認為是int[4]型別。 也就是其成員是乙個一維陣列,而一維陣列型別為int型。

a存放的就是整個陣列的位址,a[0] ,a[0][0] 與我們陣列的位址偏移量都為0。所以他們的位址都是同乙個值。

a+1 可以理解就是位址偏移乙個補償,而二維陣列的乙個步長可以理解為其成員一維陣列的長度 int[4]型 4*4個長度

同理&a[0]+1 解釋如上a+1。但是注意到a[0[0]的成員型別為int所以一次偏移為4個長度

a[1]其實就是 a中有三個元素a0  a1  a2,其型別為int[4]型別

要注意的是&a[0]+1 和a[0]+1有很大的區別,這裡我也經常混。

理解上是&a[0]+1在int[4]型別整體上偏移位址(偏移乙個量偏移一行長度),而a[0]+1 在其內部第a[0]個一維陣列內部偏移乙個int型別長度。

陣列的進一步理解!!!!!

1.陣列的位址轉移問題public static void main string args 使用 找出,元素 30 所在下標位置 找出元素30對應的下標位置 1.這裡需要利用迴圈遍歷陣列,查詢操作 2.查詢結果不確定,有可能找到,有可能找不到 3.在查詢之前我們假設對應的資料時不存在的 1 作為儲...

C語音的進一步學習

c語音的經典例項 楊輝三角的輸出 include int main for i 2 i 5 i for j 1 j i 1 j a i j a i 1 j a i 1 j 1 for i 0 i 5 i 用void sort 函式將陣列中的數從大到小排序 include void sort int ...

巨集的進一步理解

1 條件include 如下 code ifndef main h define main h 其它內容 endif 上面在看到標頭檔案時會看到 作用就是阻止這個標頭檔案被多次include 多次include就會出現重複的定義情況 所以需要在每個標頭檔案中都使用這個定義 如果還不是很了解要怎樣使用...