Як обчислюється адреса елемента масиву в пам'яті?
Адреса елемента масиву обчислюється арифметично, за формулою, яка залежить від:
- адреси початку масиву,
- розміру одного елемента,
- і індексу потрібного елемента.
Формула
Якщо:
base_address- адреса першого елемента масиву,index- номер потрібного елемента (починаючи з 0),size- розмір одного елемента в байтах,
то:
[ \text{address} = \text{base_address} + (\text{index} \times \text{size}) ]
Приклад
Припустимо:
- масив
Aпочинається за адресою1000, - кожен елемент займає
4 байти, - потрібно знайти адресу
A[3].
Підставимо:
[ 1000 + (3 \times 4) = 1012 ]
Адреса елемента A[3] = 1012.
Чому це працює
Масив зберігається у безперервних комірках пам'яті, без "пропусків".
Тому кожен наступний елемент розташований точно на size байтів далі попереднього.
Комп'ютеру не потрібно "шукати" елемент - він просто виконує це арифметичне обчислення.
Важливо
- Саме через таку схему доступ за індексом у масиві - O(1) (постійний час).
- У зв'язному списку так не можна - там елементи лежать у різних місцях пам'яті, і потрібно йти за посиланнями.
Підсумок:
Адреса елемента масиву = адреса початку + (індекс × розмір елемента). Це робить масив однією з найшвидших структур для прямого доступу до даних.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.