> -- Сергей Прохоренко писал(а):
> Кто бы объяснил, зачем элементы массивов нумеруются с нуля? Это ведь так неудобно. Приходится делать в программе лишние вычисления. Могут возникать ошибки. Тлетворное влияние немцев и французов?
Просто традиция.
В плохом языке Бэйсик (во многих его реализациях), для преодоления этого "неудобства", был специальный оператор (функция?), который устанавливал индекс первого элемента массива - 0 или 1. Естественно, что в реализации нечто в выражениях вычисления смещения (внутри интерпретатора) всё равно вычиталось... но пользователи оставались довольными и внутренние противоречия их не терзали.
В принципе, никто не мешает в компилирующих языках просто подставлять другие куски кода в кодогенерирующих частях компилятора. А начальный номер индекса в массивах определять через опции компилятора (в комментариях, например или - в командной строке).
Хотя, в тех же Паскале и Модуле-2 и этой проблемы не существовало - там границы массивов при их объявлении задавались...