Массив - это несколько пронумерованных переменных, объединенных общим именем. Все переменные имеют ОДИН И ТОТ ЖЕ ТИП.
Рассмотрим ПОЛКУ с N ящиками, пусть имя полки - var. Тогда кажждый ящик-ячейка имеет имя var[0] var[1] ... var[N-1]
Нумерация идет с НУЛЯ.
-------- / var / / / ------------------------------------------- ------------------ | | | | | | | | | | .... ... | | | | | | | | ------------------------------------------- ------------------ / var[0] / / var[1] / / var[2] / / var[N-1] / --------- --------- --------- -----------
Массив объявляется так:
int var[N];
здесь N - его размер, число ячеек.
Это описание как бы объявляет N переменных типа int с именами var[0] ... var[N-1];
В операторах для обращения к n-ому ящичку (где 0 <= n < N) используется имя ящика
var[n]
где n - целое значение (или значение целой переменной, или целочисленного выражения), "индекс в массиве". Эта операция [] называется "индексация массива". Индексация - есть ВЫБОР одного из N ящиков при помощи указания целого номера. var - массив (N ячеек) n - выражение (формула), выдающая целое значение в интервале 0..N-1 var[n] - взят один из элементов массива. Один из всех. n - номер ящика - называется еще и "индексом" этой переменной в массиве.
Пример:
int var[5]; /* 1 */
var[0] = 2; /* 2 */ var[1] = 3 + var[0]; /* 3 */ var[2] = var[0] * var[1]; /* 4 */ var[3] = (var[0] + 4) * var[1]; /* 5 */
printf("var третье есть %d\n", var[3]);
В ходе этой программы элементы массива меняются таким образом:
var[0] var[1] var[2] var[3] var[4] ------------------------------------------------ /* 1 */ мусор мусор мусор мусор мусор /* 2 */ 2 мусор мусор мусор мусор /* 3 */ 2 5 мусор мусор мусор /* 4 */ 2 5 10 мусор мусор /* 5 */ 2 5 10 30 мусор
Как видим, каждый оператор изменяет лишь ОДНУ ячейку массива за раз.
Массив - набор переменных, которые не ИМЕНОВАНЫ разными именами, вроде var0, var1, var2, ... а ПРОНУМЕРОВАНЫ под одним именем: var[0], var[1], var[2], ...