20 某個以列為主(row-major)儲存的二維陣列 A[0..5][0..7],若 A[1][5]的位址是 100010,A[2][6]的位址是 103610,則 A[4][3]的位址是下列何者?
(A) 1066
(B) 1072
(C) 1076
(D) 1088
答案:登入後查看
統計: A(12), B(31), C(23), D(142), E(0) #1510348
統計: A(12), B(31), C(23), D(142), E(0) #1510348
詳解 (共 5 筆)
#4367971
A[0..5][0..7],若
A[1][5]的位址是 100010,
A[2][6]的位址是 103610
//S=陣列起始位址
A[1][5] = S + (8X+ 6X) = 1000 // 一行又六個(0~5)
A[2][6] = S + (16X + 7X)= 1036 // 兩行又七個(0~6)
A[2][6] - A[1][5] = 1036-1000 = S + (16X + 7X) - S + (8X+ 6X)
= 36 = 9X
X= 4
A[1][5] = S + (8X+ 6X) = 1000 = S + 56
S = 1000-56 = 944
A[4][3] = S + (4*8*X) + (4)X = 944 + (4*8*4) + (4*4) = 1088
0
1
#6228640
A[1][5]和A[2][6]差了(7-5)+(6-0)+1=9個位置,所以1個位置佔4格。
A[2][6]和A[4][3]差了(7-6)+8+(3-0)+1=13,所以位址是1036+4*13=1088。
0
0