Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 9 сообщений
Cообщения с меткой

bcpl - Самое интересное в блогах

Следующие 30  »
rss_habr

Почему массивы начинаются с нуля

Вторник, 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

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<bcpl - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda