Я где-то уже писал на этом форуме, но чувствую, что имеет смысл повторить.

Для программиста никакой путаницы и никаких проблем не возникает, если раз и навсегда для себя установить, что с каждым элементом массива могут быть связаны два числа (понятия): "индекс" и "номер". Причём, индекс как бы является системной характеристикой, а номер - прикладной.

Массивы очень полезно себе представлять как нагруженные множества. А именно: упорядоченное множество индексов и их нагрузки (сами данные). Здесь, с одной стороны не возникает никаких противоречий с математическим понятием множества; а с другой стороны, массив как бы является расширением уже введённого в язык понятия множества SET.

Последнюю мысль поясню. То есть массив, как и SET, тоже является как бы множеством целых чисел от 0 до N-1 (индексов). Только, во-первых, N здесь может быть произвольным; во-вторых, массив является нагруженным множеством.

PS: Про нагруженные множества можно почитать, например, у Борисенко:http://www.intuit.ru/department/se/pbmsu/12/2.html.