Это действительно вопрос, почему или почему вы не должны начинать индексы (любого рода, если на то пошло) с 0. См. этот пост о самой теме . Возможно, есть несколько веских причин для начала индекса с 0.
Есть также несколько устаревших технических причин. Например, в C массив был указателем на первый элемент массива, а форма array[i]
равна *(array + i)
, что означает, что индекс действительно ссылается на offset от первого элемента массива. Таким образом, смещение 0 ссылается на первый элемент, а смещение 1 ссылается на второй элемент и т. Д.
Это все о математической красоте.