要計算 A[2,4]A[2, 4]A[2,4] 的位址,首先要確定每個元素佔據的記憶體大小,以及以列為主(Row-major order)和以行為主(Column-major order)的表示法。
假設每個元素佔據一個單位的記憶體空間,我們可以使用以下公式來計算。
以列為主的表示法中,陣列元素按照列的順序依次儲存。對於二維陣列 A[m..n,p..q]A[m..n, p..q]A[m..n,p..q],元素 A[i,j]A[i, j]A[i,j] 的位址可以由以下公式計算:
地址=基地址+[(i−起始列)×列的元素數]+(j−起始行)\text{地址} = \text{基地址} + [(i - \text{起始列}) \times \text{列的元素數}] + (j - \text{起始行})地址=基地址+[(i−起始列)×列的元素數]+(j−起始行)
套用到 A[1..3,1..5]A[1..3, 1..5]A[1..3,1..5] 中:
所以 A[2,4]A[2, 4]A[2,4] 的位址為:
地址=100+[(2−1)×5]+(4−1)\text{地址} = 100 + [(2 - 1) \times 5] + (4 - 1)地址=100+[(2−1)×5]+(4−1) 地址=100+(1×5)+3\text{地址} = 100 + (1 \times 5) + 3地址=100+(1×5)+3 地址=100+5+3\text{地址} = 100 + 5 + 3地址=100+5+3 地址=108\text{地址} = 108地址=108
以行為主的表示法中,陣列元素按照行的順序依次儲存。對於二維陣列 A[m..n,p..q]A[m..n, p..q]A[m..n,p..q],元素 A[i,j]A[i, j]A[i,j] 的位址可以由以下公式計算:
地址=基地址+[(j−起始行)×行的元素數]+(i−起始列)\text{地址} = \text{基地址} + [(j - \text{起始行}) \times \text{行的元素數}] + (i - \text{起始列})地址=基地址+[(j−起始行)×行的元素數]+(i−起始列)
套用到 A[1..3,1..5]A[1..3, 1..5]A[1..3,1..5] 中:
所以 A[2,4]A[2, 4]A[2,4] 的位址為:
地址=100+[(4−1)×3]+(2−1)\text{地址} = 100 + [(4 - 1) \times 3] + (2 - 1)地址=100+[(4−1)×3]+(2−1) 地址=100+(3×3)+1\text{地址} = 100 + (3 \times 3) + 1地址=100+(3×3)+1 地址=100+9+1\text{地址} = 100 + 9 + 1地址=100+9+1 地址=110\text{地址} = 110地址=110