Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИЯ№3_С++(массивы&указатели).doc
Скачиваний:
14
Добавлен:
25.11.2019
Размер:
740.35 Кб
Скачать
    1. Работа с массивами

      1. Доступ к элементу массива

Для доступа к конкретному элементу массива используются индексные выражения:

<имя массива>[<целочисленное выражение>].

Квадратные скобки являются требованием синтаксисам языка, а не признаком необязательности конструкции.

Индекс массива может быть не только константой, но и выражением, которое имеет целочисленный тип, например, a[i+1] (здесь a должно быть именем ранее объявленного массива, а i – переменной целого типа).

Объявление массива и индексное выражение, используемое для доступа к элементу массива, имеют схожий синтаксис. Различаются они по месту в программе. Это особенно важно, когда мы определяем индекс последнего элемента массива. Как было сказано ранее, индексы элементов массива в языке C начинаются с 0, и номер последнего элемента на 1 меньше количества элементов массива. Поэтому если Вы объявили массив x из 10 элементов, Вы не можете написать индексное выражение x[10], т.к. в этом случае Вы пытаетесь обратиться к элементу с индексом 10, которого нет в Вашем массиве. Компилятор не выдаст сообщения об ошибке, но результаты работы такой программы будут непредсказуемы.

      1. Обработка массивов

Для обработки элементов массива обычно используется оператор пошагового цикла for.

for (i = 0;

// Присваиваем счетчику цикла значение индекса первого элемента

i < n;

// Условие продолжения цикла – пока значение счетчика меньше количества элементов массива

i++)

// Увеличиваем счетчик цикла на 1 для перехода к следующему элементу массива

<тело цикла>

// В теле цикла происходит обработка одного элемента массива

Для обработки многомерного массива используется соответствующее количество циклов.

Массивы не самодостаточны в том смысле, что не гарантируется хранение информации о количестве элементов вместе с самим массивом. В большинстве реализаций С++ отсутствует проверка диапазона индексов для массивов (традиционный низкоуровневый подход к обработке массивов). Более совершенное понятие массива можно реализовать при помощи классов.

      1. Ввод/вывод массивов

В языке C нет возможности вводить и выводить весь массив одним оператором ввода/вывода. Можно вводить и выводить только один элемент массива.

Пример.

int a[10], n;

printf("n=");

scanf("%d", &n);

if (n<0 || n>9) {

printf("Количество элементов массива должно быть от 0 до 9!\n");

return;

}

for (i = 0; i < n; i++)

scanf("%d", &a[i]);

for (i = 0; i < n; i++)

printf("a[%d] = %3d\n", i + 1, a[i]);

// Объявляем массив и переменную для количества элементов массива

// Ввод количества элементов массива

// Если входные данные неверны, // то печатаем соответствующее сообщение и выходим из программы

// Ввод массива по одному элементу

// Вывод массива на экран