不是連續的陣列嗎?
還是二維陣列的地址不連續?
uj5u.com熱心網友回復:
按哪一維排列會造成差異就是說[a,b]之后放[a+1,b]還是[a,b+1]肯定是有差異的
uj5u.com熱心網友回復:
二維陣列中,你將“行”看作一個元素,則二維陣列就是“行的陣列”。其實,你宣告一個指標,去訪問一下陣列的空間,就明白了。
uj5u.com熱心網友回復:
https://wenku.baidu.com/view/f6bbb441e45c3b3567ec8bda.htmluj5u.com熱心網友回復:
陣列的記憶體連續的,無論是幾維。接下來就看 LZ 你如何訪問:行&列。uj5u.com熱心網友回復:
定義一個二維陣列一個個取地址輸出
uj5u.com熱心網友回復:
簡單的說,記憶體沒有差別,你一維陣列也可以使用二維來訪問uj5u.com熱心網友回復:
這篇文章講的非常到位:主要還是記憶體的頁交換會影響訪問的效率
http://blog.sina.com.cn/s/blog_446b43c10100d6e6.html
uj5u.com熱心網友回復:
不考慮記憶體分頁(STM好像不用)任何成塊狀的資料,放置的時候,都是連續的,你甚至可以直接理解為其實本質就是一個一維是陣列而已,所謂2維甚至更高,這只是陣列索引的方法的區別而已,一個4*5的二維陣列,在記憶體就是20個連續地址而已。和一個1*20的一維陣列沒任何區別,你可以用指標訪問去測驗一下就可以完全明白。uj5u.com熱心網友回復:
是的,我用指標訪問了,確實是連續的!這個問題是我面試的時候,面試官問我的題目。說char[1024]和char[32][32]記憶體布局有什么不同?
uj5u.com熱心網友回復:
有區別,很大的區別uj5u.com熱心網友回復:
什么區別,請幫忙解答一下
uj5u.com熱心網友回復:
首先先說下陣列的定義,陣列是資料型別相同的資料連續存盤的一種資料結構。所以不管是一維還是幾維陣列,一旦定義好就都是在連續的物理空間存盤的。再者,同樣大小的資料存盤在一維陣列中如果需要分多頁記憶體頁存盤,那么將這些資料存盤在多維陣列中的情況也同樣是占用相同數量的記憶體頁。不管分不分頁,這些地址都是連續的。一維陣列和二維陣列不同的地方是,一位陣列沒有行指標,二維陣列有行指標。通過行指標可以更快捷直觀的讀寫資料,這就是二維陣列比一維陣列方便的地方。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/143183.html
標籤:嵌入開發(WinCE)
上一篇:元器件封裝庫基本命名要求
