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

Спасибо, Wlad2! Я, наконец, понял, что это просто идиотская традиция, которую обязаны любить все крутые программеры. Мы ведь должны сделать приятное компилятору, чтобы тот, бедняга, не перетрудился, и для этого каждый раз должны свихивать свои мозги (типа, кроме индекса нужно держать в голове номер) и рисковать наделать ошибок.