Массивы в С++
Разработал: преподаватель ЦК ПЭВМ
Гончаренко И.А.
Троицк, 2020
Определение
Массив – это совокупность данных, которая обладает следующими свойствами:
- элементы массива имеют один и тот же тип;
- элементы массива имеет одно имя для всех;
- доступ к конкретному элементу массива осуществляется по индексу.
Объявление массива
[];
[ ];
Пример: Int a[10]; - задание одномерного массива на 10 элементов
Пример: Int a[5][5]; - задание двумерного массива на 5 столбцов и 5 строк
- Константное выражение, заключенное в квадратные скобки определяет число элементов в массиве. Индексация элементов массива в языке C++ начинается с нуля. Таким образом, последний элемент массива имеет индекс на единицу меньше, чем число элементов массива.
- Каждое константное выражение определяет количество элементов в данном измерении массива, поэтому объявление двумерного массива содержит два константных выражение, трехмерного – три и т.д.
Массив может состоять из элементов любого типа, кроме типа void и функций, т.е. элементы массива могут иметь базовый, перечислимый, структурный тип, быть объединением, указателем или массивом.
Примеры объявлений массивов
- int x[10]; // Одномерный массив из 10 целых чисел. Индексы меняются от 0 до 9.
- double y[2][10]; // Двумерный массив вещественных чисел из 2 строк и 10 столбцов.
Инициализация массивов
Инициализатор для объектов составных типов состоит из списка инициализаторов, разделенных запятыми и заключенных в фигурные скобки. Каждый инициализатор в списке представляет собой либо константу соответствующего типа, либо, список инициализаторов. Эта конструкция используется для инициализации многомерных массивов.
Если в списке инициализаторов меньше элементов, чем в массиве, то оставшиеся элементы неявно инициализируются нулевыми значениями. Если же число инициализаторов больше, чем требуется, то выдается сообщение об ошибке.
Инициализация массивов
- int a[3] = {0, 1, 2}; // Число инициализаторов равно числу элементов
- double b[5] = {0.1, 0.2, 0.3}; // Число инициализаторов меньше числа элементов
- int c[ ] = {1, 2, 4, 8, 16}; // Число элементов массива определяется по числу инициализаторов
- int d[2][3] = {{0, 1, 2}, {3, 4, 5}}; // Инициализация двумерного массива. Массив состоит из двух строк, в каждой из которых по 3 элемента. Элементы первой строки получают значения 0, 1 и 2, а второй – значения 3, 4 и 5.
- int e[3] = {0, 1, 2, 3}; // Ошибка – число инициализаторов больше числа элементов
Доступ к элементу массива
Для доступа к конкретному элементу массива используются индексные выражения:
Пример: a[3] – обращение к четвертому элементу массива.
Индекс массива может быть не только константой, но и выражением, которое имеет целочисленный тип, например, a[i+1] (здесь a должно быть именем ранее объявленного массива, а i – переменной целого типа).
Индексы элементов массива в языке C начинаются с 0, и номер последнего элемента на 1 меньше количества элементов массива. Поэтому если вы объявили массив x из 10 элементов, вы не можете написать индексное выражение x[10], т.к. в этом случае вы пытаетесь обратиться к элементу с индексом 10, которого нет в вашем массиве.
Обработка массивов
Для обработки элементов массива обычно используется оператор пошагового цикла for.
for (i = 0; i
Для обработки многомерного массива используется соответствующее количество циклов.
for (i = 0; i
for (j = 0; j
пример
В языке C нет возможности вводить и выводить весь массив одним оператором ввода/вывода. Можно вводить и выводить только один элемент массива. Для того чтобы ввести весь массив, надо использовать цикл.
int a[10], n; / / Объявляем массив и переменную для количества элементов массива
cout
cinn; // Ввод количества элементов массива
if (n 9) // Если входные данные неверны,
{ cout
// то печатаем соответствующее сообщение и выходим из программы
return; }
Ввод/вывод массива
Ввод массива по одному элементу:
for (i = 0; i
cina[i]; // ввод значений массива
Вывод также осуществляется в цикле:
for (i = 0; i
cout //вывод элементов массива
Спасибо за внимание!!!