Почему массивы начинаются с нуля
|
|
Вторник, 01 Ноября 2022 г. 05:39
+ в цитатник
Самое очевидное объяснение: индекс — это смещение относительно начала массива. Так элементы массива легче адресовать в памяти.
Проверим это на C.
#include
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 настолько тесная, что их даже можно рассматривать вместе.
Однако это ответ на вопрос «зачем», а не «почему». Нумеровать массивы с нуля стали не сразу. Удивительно, но история такого простого вопроса не умещается в предложении или абзаце.
Читать дальше → https://habr.com/ru/post/696666/?utm_source=habrahabr&utm_medium=rss&utm_campaign=696666
Метки:
История IT
Математика
Ненормальное программирование
программирование
массивы
нумерация
история
BCPL
Python
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-