Математики перечисляют элементы массива, начиная с первого. То есть номер первого элемента массива равен 1. Что вполне логично, согласитесь. В “человеческих” языках программирования, таких как Паскаль, нумерация элементов массива также начинается с 1 (как правило, но не обязательно - см. ниже). А вот создатели С/С++ и многих других языков, основанных на них, пошли своим путём. С их точки зрения первый элемент массива должен иметь номер 0. То есть нумерация (индексация) элементов массива в С/С++, JavaScript и других языках начинается с нуля. Это часто приводит к ошибкам, причём ошибаются не только новички, но и бывалые. Чаще всего ошибка заключается в попытке обратиться к последнему элементу. Например, если в массиве M4 четыре элемента, то новички обычно пишут M4[4] вместо M4[3]. Пример: //Массив из 4-х элементов int M4[4] = {0}; //Присваиваем 1 ПЕРВОМУ элементу M4[0] = 1; //Присваиваем 2 ТРЕТЬЕМУ элементу M4[2] = 2; Как я уже сказал, немного нелогично, но привыкнуть можно. Сложнее прив