111年檢察事務官三等程式語言
四、若有一個二維陣列宣告為 A[1..3, 1..5] 且已知其 A[1, 1] 的位址為100,試以列為主及以行為主的表示法,求 A[2, 4] 之位址為何?(25分) |
答:
以列為主:
|
1 |
2 |
3 |
4 |
5 |
1 |
100 |
101 |
102 |
103 |
104 |
2 |
105 |
106 |
107 |
108 |
|
3 |
|
|
|
|
|
以行為主:
|
1 |
2 |
3 |
4 |
5 |
1 |
100 |
103 |
106 |
109 |
|
2 |
101 |
104 |
107 |
110 |
|
3 |
102 |
105 |
108 |
|
|
假設 Loc(A[i]) 是位址,α 是陣列的起始位址,每個元素需要 c bytes 的記憶體空間。
(一)以列為主(row-major):(座標-維下限)×右邊寬度
二維陣列 A[1..3][1..5],陣列各維度大小分別為 w1 = 3, w2 = 5。
Loc(A[2][4]) = α+c×[(2-1)×5+(4-1)]
= 100+c×8
= 100+8c
(二)以行為主(column-major):(座標-維下限)×左邊寬度
二維陣列 A[1..3][1..5],陣列各維度大小分別為 w1 = 3, w2 = 5。
Loc(A[2][4]) = α+c×[(2-1)+(4-1)×3]
= 100+c×10
= 100+10c
文章標籤
全站熱搜
留言列表