多維陣列(C)
文章推薦指數: 80 %
在下列範例中,名為 prop 的陣列中宣告了三個元素,每個元素都是4x6 的 int 值陣列。
複製. int prop[3][4][6]; ...
跳到主要內容
已不再支援此瀏覽器。
請升級至MicrosoftEdge,以利用最新功能、安全性更新和技術支援。
下載MicrosoftEdge
其他資訊
目錄
結束焦點模式
語言
閱讀英文
儲存
目錄
閱讀英文
儲存
Twitter
LinkedIn
Facebook
電子郵件
目錄
多維陣列(C)
發行項
05/02/2022
6位參與者
本文內容
註標運算式也可以擁有多個註標,如下所示:
expression1[expression2][expression3]...
註標運算式的關聯是由左至右。
最左邊的註標運算式expression1[expression2]會最先評估。
expression1和expression2相加所產生的位址會形成指標運算式,然後expression3會加入這個指標運算式形成新的指標運算式,依此類推,直到加入最後一個註標運算式為止。
除非最後一個指標值會定址陣列類型(請參閱以下範例),否則間接取值運算子(*)會在評估最後一個註標運算式之後套用。
具有多個下標的運算式是指「多維度陣列」的專案。
多維度陣列是陣列,其元素為數組。
例如,三維陣列的第一個元素是具有兩個維度的陣列。
範例
在下列範例中,名為prop的陣列中宣告了三個元素,每個元素都是4x6的int值陣列。
intprop[3][4][6];
inti,*ip,(*ipp)[6];
prop陣列參考的外觀如下:
i=prop[0][0][1];
上述範例示範如何參考int的第二個個別prop元素。
陣列會依資料列儲存,因此最後一個註標變化的速度更快,而prop[0][0][2]運算式會參考陣列的下一個(第三個)元素,依此類推。
i=prop[2][1][3];
這個陳述式對於prop的個別元素來說是更為複雜的參考。
運算式評估如下:
第一個註標2會乘以4x6int陣列的大小,並且增加至指標值prop。
結果會指向prop的第三個4x6陣列。
第二個註標1會乘以6個元素int陣列的大小,並且增加至prop[2]所代表的位址。
6個元素陣列的每個元素都是int值,因此最後一個註標3會先乘以int的大小,再增加至prop[2][1]。
產生的指標會定址6個元素陣列的第四個元素。
間接運算子會套用至指標值。
結果會是位於該位址的int元素。
接下來的兩個範例將示範未套用間接運算子的案例。
ip=prop[2][1];
ipp=prop[2];
在第一個陳述式中,運算式prop[2][1]為三維陣列prop的有效參考,它會參考6個元素的陣列(上面所宣告)。
由於指標值會定址陣列,因此不會套用間接運算子。
同樣地,第二個陳述式prop[2]中ipp=prop[2];運算式的結果是定址二維陣列的指標值。
另請參閱
下標運算子:
本文內容
延伸文章資訊
- 1多維陣列(C)
在下列範例中,名為 prop 的陣列中宣告了三個元素,每個元素都是4x6 的 int 值陣列。 複製. int prop[3][4][6]; ...
- 2二維(多維)陣列 - OpenHome.cc
一維陣列使用陣列名稱與一個索引值來指定存取陣列元素,二維陣列使用陣列名稱與兩 ... 個一維陣列在記憶體中連續配置,嚴格來說,C 沒有二維陣列這種東西,二維或多維 ...
- 3[C語言] - 指標及多維陣列 - Ivan's Blog
指標及一維陣列在不少的書籍,我們都可以看到可以把陣列看成指標,這不完全正確,但在實作上也不能說完全不正確本質上陣列名稱代表的是一個位址, ...
- 4Array 三維陣列(C++) | 方格子
三維陣列(Three-dimensional array) ... for(int i=0; i<2; i++){ for(int j=0; j<3; j++){ delete[] array[...
- 5DAY29 學習30天的c++ - iT 邦幫忙
一維陣列的註標如直線[x]座標,二維陣列的註標如平面[y],[x]座標,三維陣列的註標類似 ... for(int q=0; q<2; q++) { cout << " a" << i << '...