Индексы массивов и структур данных на них построенные или подобных по сути начинаются с 0 (в большинстве языков программирования). Правило происходит от принципа вычисления: адрес+смещение, когда ты знаешь адрес памяти начала массива, длину каждого элемента и его порядковый номер (смещение=длина*порядковый номер), то есть, ты по формуле вычисляешь адрес нужного элемента и переходишь сразу к нему. Так вот, первый элемент начинается с адреса, то есть с 0 смещением, что достигается при значении индекса=0.
Гуманитарий---это тот, кто знает как минимум два языка и может сходу процитировать пару абзацев из своей любимой книги, а совсем не тот, кто не способен осознать, как извлекаются из памяти элементы массива.
И сто процентов не тот, кто мало того, что не может осознать адресацию со смещением и индексацию начиная с нуля, но еще и считает это айтишными выебонами.
это было интересно в семидесятые, когда c напрямую имплементировал опкоды процессора pdp-11. в 2018 году это не увеличивает производительность и идёт в ущерб читаемости.
ну, было дело 20 лет назад.
в паскале счёт начинается с той цифры, которую задал при декларировании массива (array [стартовый_индекс..конечный_индекс] of тип), потому-что паскаль это высокоуровневый язык программирования, у которого были настоящие массивы вместо альтернативного вида записи указателей.
Да с чего вы взяли, что не пошла? В AWK, Lua, Smalltalk и многих других базовый индекс 1. При этом в Lua, Ruby, Haskell, Visual Basic и Fortran для конкретного массива это можно переопределить. В Lua можно сделать базовым хоть -5.
Интересно, что в Perl некоторое время в качестве экспериментальной фичи тоже можно было переопределить начальный индекс, вместо нуля присвоив другую константу системной переменной $[, но позже эту фичу выкинули и теперь там только 0 в кчестве базы индекса опять.
Как то меня отправили на районную олимпиаду по программированию. Программированию на Logo, во времена ЕС18хх. За первое место наградили дискетой. Дискетой на 5,25"...
Отличный комментарий!