最近又**了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就會出現重複的定義情況 所以需要在每個標頭檔案中都使用這個定義 如果還不是很了解要怎樣使用...