多維陣列(C)

文章推薦指數: 80 %
投票人數:10人

在下列範例中,名為 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];運算式的結果是定址二維陣列的指標值。

另請參閱 下標運算子: 本文內容



請為這篇文章評分?