Почему массивы начинаются с нуля
7 мин
Самое очевидное объяснение: индекс — это смещение относительно начала массива. Так элементы массива легче адресовать в памяти.
Проверим это на C.
Получим результат:
Как первый (нулевой) элемент, так и сам массив находятся по одному и тому же адресу, поскольку 0-й элемент удалён на 0 элементов от начала. Эта связь между указателями и массивами в C настолько тесная, что их даже можно рассматривать вместе.
Однако это ответ на вопрос «зачем», а не «почему». Нумеровать массивы с нуля стали не сразу. Удивительно, но развитие такого простого вопроса не умещается в предложении или абзаце.
Проверим это на C.
#include <stdio.h>
int main()
{
int data[3] = {1, 2, 3};
int i = 0;
printf("Array address: %p\n", data);
do {
printf("Array[%u] = %p\n", i, (void *)(&data[i]));
i++;
} while(i < 3);
}Получим результат:
Array address: 0x7ffd7c514a6c
Array[0] = 0x7ffd7c514a6c
Array[1] = 0x7ffd7c514a70
Array[2] = 0x7ffd7c514a74Как первый (нулевой) элемент, так и сам массив находятся по одному и тому же адресу, поскольку 0-й элемент удалён на 0 элементов от начала. Эта связь между указателями и массивами в C настолько тесная, что их даже можно рассматривать вместе.
Однако это ответ на вопрос «зачем», а не «почему». Нумеровать массивы с нуля стали не сразу. Удивительно, но развитие такого простого вопроса не умещается в предложении или абзаце.








В прошлую пятницу, 22 мая, ракета Falcon 9 с пилотируемым кораблём Crew Dragon прошли проверку Flight Readiness Review — стандартную операцию для пусков ещё с эпохи шаттлов. Изначально 

В начале прошлого месяца капитализация Apple 
Сегодня Таганский суд Москвы разрешил заблокировать мессенджер Telegram в России. Об удовлетворении иска Роскомнадзора сообщают корреспонденты (

Сегодня в 20:00 по московскому времени в своём новом кампусе Apple проведёт презентацию нескольких новинок. В 2007 году глава Apple Стив Джобс представил первый смартфон iPhone. Несложно угадать, что 10 лет спустя представят в здании его имени.