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

arrow
arrow
    文章標籤
    程式語言
    全站熱搜

    jacksaleok 發表在 痞客邦 留言(0) 人氣()