1.A[8,6]為二維陣列,陣列起始位址為12,求A[3,4]位址?元素大小=1
2.A[1..8,1..6]為二維陣列,陣列起始位址為12,求A[3,4]位址?元素大小=1
請為這2題有何不同?答案各是?
2007-06-16 08:13:31 · 1 個解答 · 發問者 123 2 in 科學 ➔ 數學
妳的想法很容易理解
可惜我看書的答案並非如此
第一題 的答案與您第二題提出的解答是一樣的 ( 27,38 )
A[8,6]指 A[1~8,1~6] 是成立的也是肯定的
但第2題目,A[1...8,1..6] 我書上的算法我看不懂
row major
A[3,4]=12+(3-1)*(6-4+1)+(4-1)=21
column major
A[3,4]=12+(4-1)*(8-3+1)+(3-1)=32
就他的算法,您能幫我想想她的思考邏輯嗎?3Q
2007-06-19 15:31:25 · update #1
第二題, 這是 8 x 6 的二維陣列,
若是以 列優先 (low-major)方式把二維陣列元素安置於一維的記憶體, 則
A[3,4] 是第 2 x 6 + 4 = 16 個元素, 位址會是 12 + (16-1) = 27.
若是以 行優先 (column-major)方式, A[3,4] 是第 3 x 8 + 3 = 27 個元素, 位址是 12 + (27-1) = 38.
第一題: 這也是 8 x 6 的二維陣列,
對有的語言而言(像 FORTRAN), A[8,6] 指的是和 A[1..8,1..6] (第貳題) 一樣. 所以答案如上.
對其他一些語言, 這 A[8,6] 通常指的是 A[0...7, 0...5] 的 8 x 6 二維陣列 (像 C 語言). 答案則是:
若是以 列優先 (low-major)方式, A[3,4] 是第 3 x 6 + 5 = 23 個元素, 位址是 12 + (23-1) = 34.
若是以 行優先 (column-major)方式, A[3,4] 是第 4 x 8 + 4 = 36 個元素, 位址是 12 + (36-1) = 47.
2007-06-17 19:41:57 · answer #1 · answered by Leslie 7 · 0⤊ 0⤋