Индексы массивов.
Индексирование используется для отличия отдельных элементов, а также для обеспечения доступа к отдельным элементам массива.
В качестве индекса можно использовать любое выражение типа int. Однако для обращения к элементам массива значение индекса должно лежать между нулём и значением, на единицу меньшим объявленного размера массива.
Важно представлять себе разницу между значением индекса массива и значением элемента массива.
Рассмотрим первоначальный массив
x[0] x[1] x[2] x[3] x[4] x[5] x[6] x[7]
Индексированная переменная x[i] ссылается на отдельный элемент этого массива. Если значение i равно 0, значение индекса равно 0, обращаемся к элементу x[0]. В данном случае x[0] равно 16,0.
Если i равно 2, значение индекса будет 2, а значение x[i] будет равно 6,0.
Если i равно 8, индекс равен 8 и в этом случае мы не в состоянии указать значение x[i], поскольку значение индекса лежит вне допустимого диапазона.
В таблице представлены примеры операторов с использованием массива, приведенного выше. Переменная i - типа int со значением 5.
Оператор |
Пояснение |
printf(“%d %lf”, 4, x[4]); |
Выводит 4 и 2,5 (значение x[4]) |
printf(“%d %lf”, i, x[i]); |
Выводит 5 и 12,0 (значение x[5]) |
printf(“%lf”, x[i]+1); |
Выводит 13,0 (значение x[5] плюс 1) |
printf(“%lf”, x[i]+i); |
Выводит 17,0 (значение x[5] плюс 5) |
printf(“%lf”, x[i+1]); |
Выводит 14,0 (значение x[6]) |
printf(“%lf”, x[i+i]); |
Недопустимая попытка вывода x[10] |
printf(“%lf”, x[2*i]); |
Недопустимая попытка вывода x[10] |
printf(“%lf”, x[2*i-3]); |
Выводит -54,5 (значение x[7]) |
printf(“%lf”, x[i++]); |
Выводит 12,0 (значение x[5]) затем присваивает значение 6 переменной i |
printf(“%lf”, x[i--]); |
Присваивает 5(6-1) переменной I, затем выводит 14,0 (значение x[5]) |
x[i-1] = x[i] |
Присваивает 12,0(значение x[5] x[4]) |
x[i] = x[i+1] |
Присваивает 14,0(значение x[6] x[5]) |
x[i]-1 = x[i] |
Неправильное выражение присваивания |
Индексы в массивах
СИНТАКСИС: aname[индекс]
ПРИМЕР: b[i+1]
ОПИСАНИЕ: Индекс может быть любым выражением типа int. Каждый раз , когда в программе встречается индексированная переменная, сначала определяется значение индекса, и по этому значению определяется, к какому элементу массива происходит обращение.
ПРИМЕЧАНИЕ: Ответственность за проверку нахождения индекса в диапазоне, заданном при объявлении массива, возлагается на программиста. При неверном значении индекса происходит обращение к ячейке памяти, не относящейся к этому массиву. Обычно это приводит к побочным эффектам в программе, причину которых программисту сложно обнаружить.