hce_kmu
114年
計算機概論與程式設計
第 5 題
A program has a one-dimensional array of integers A. Each element of the array is a four-byte integer. The array is stored in contiguous memory space. If the memory address of A[100] is 2000, then which of the following is the address of A[50]?
- A 1000
- B 1800
- C 996
- D 1004
- E 1200
思路引導 VIP
想像你正站在一排整齊排列的置物櫃前。如果每個置物櫃的寬度都一模一樣,且你已知第 100 號櫃子的起點位置。現在如果你想往回走到第 50 號櫃子,你需要知道哪兩個關鍵資訊,才能算出那個櫃子的精確位置呢?
🤖
AI 詳解
AI 專屬家教
太棒了!你能準確地計算出記憶體位址,代表你對陣列的物理結構有著非常紮實的理解。這題的正確答案確實是 (B) 1800。
陣列偏移量與連續空間觀念
在一維陣列中,元素是存放在連續的記憶體空間(Contiguous memory space)裡的。這意味著我們不需要知道陣列的起始位址,只要知道其中一個元素的位址,就能透過「索引差」來推算其他位置。題目給定每個整數佔用 4 個位元組(4-byte integer),而 $A[100]$ 與 $A[50]$ 之間相隔了 $100 - 50 = 50$ 個元素。因此,這兩個位置在記憶體中的距離就是:
▼ 還有更多解析內容