4 若一整數陣列(array)使用C程式語言之語法宣告為K[12] [12] [12],且K[7] [7] [7]儲存於記憶體中之位址(address)為631976。假設記憶體中儲存一個整數(integer)資料必須使用4個位元組(byte),且使用列為主順序(row major order)之方式儲存陣列之組成元素,則下列各選項何者正確?
(A)K[2] [2] [2] 儲存於記憶體中之位址(address)為628832
(B)K[3] [1] [5] 儲存於記憶體中之位址(address)為629376
(C)K[8] [3] [10] 儲存於記憶體中之位址(address)為632376
(D)K[1] [6] [8] 儲存於記憶體中之位址(address)為628468
答案:登入後查看
統計: A(35), B(140), C(89), D(27), E(0) #316614
統計: A(35), B(140), C(89), D(27), E(0) #316614
詳解 (共 3 筆)
#1011510
(B)K[7] [7] [7] -) K[3] [1] [5]
= ( ([4]*12*12 )+ [6]*12 + [2] )*4
= 2600 (兩位置差)
K[7] [7] [7]=631976 減去2600 =K[3] [1] [5]位置 629376
= ( ([4]*12*12 )+ [6]*12 + [2] )*4
= 2600 (兩位置差)
K[7] [7] [7]=631976 減去2600 =K[3] [1] [5]位置 629376
9
0
#1012018
(A)K[2] [2] [2] 儲存於記憶體中之位址(address)為628836
(C)K[8] [3] [10] 儲存於記憶體中之位址(address)為632372
(D)K[1] [6] [8] 儲存於記憶體中之位址(address)為628476
假設起始位址為K(1,1,1)=lo
由K(7,7,7)=631976=lo+[(7-1)*12*12+(7-1)*12+(7-1)]*4
得lo=628208
5
1