Массивы. Часть 1. Определение массива. Одномерные массивы. Инициализация массива
Поиск на других ресурсах:
1. Что такое массив? Определение массива
Массив – набор переменных одинакового типа. Доступ к этим переменным осуществляется по одному имени. Это имя называется именем массива.
Массивы используются для группирования связанных переменных между собой.
2. Определение одномерных и многомерных массивов.
Массивы могут быть одномерными и многомерными. В одномерных массивах для доступа к элементу массива используется один индекс. В многомерных массивах для доступа к элементу массива используется несколько индексов.
3. Описание одномерного массива. Примеры описания одномерных массивов
Общая форма описания одномерного массива:
тип имя_массива[размер];
В вышеприведенном описании:
- тип – это тип элементов массива. Он еще называется базовым типом. Базовый тип определяет количество данных каждого элемента, который составляет массив. Тип элементов массива может быть как базовым типом так и составным (например, структура). Подробно о базовых типах данных C++ описывается здесь.
- размер – количество элементов в массиве;
- имя_массива – непосредственно имя массива, по которому осуществляется доступ к элементам массива.
После описания массива, значение элементов может быть нулевым или неопределенным.
RAID массив. Что это такое, какие бывают и как создать ️
Пример 1. Описание массива из 10 целых чисел (тип int ) с именем A .
int A[10];
В результате, в памяти компьютера выделяется 10 ячеек типа int . Если одна ячейка занимает 2 байта, то всего будет выделено 20 байт памяти. Номер первой ячейки начинается с нуля. Эти ячейки объединены общим именем A .
Рисунок 1. Массив из 10 целых чисел
Пример 2. Описание массива с именем M , содержащим 20 элементов типа char .
char M[20];
4. Доступ к элементам одномерного массива. Примеры
Доступ к отдельному элементу массива осуществляется с помощью индекса.
Индекс определяет позицию элемента в массиве. Первый элемент массива имеет нулевой индекс.
Чтобы получить доступ к отдельному элементу массива по его индексу, нужно после имени массива в квадратных скобках указать номер этого элемента.
Пример 1. Пусть дан массив с именем A , содержащий 10 целых чисел. Записать число 5 в первый и последний элементы массива.
// описание массива A int A[10]; A[0] = 5; // первый элемент массива A[9] = 5; // последний элемент массива
На рисунке 2 видно результат работы вышеприведенного программного кода.
Рисунок 2. Результат работы фрагмента кода
Пример 2. Массив из 10 элементов типа char .
char M[10]; M[3] = ‘a’; M[7] = ‘0’; M[8] = ‘;’;
Урок 6: Массивы и выполнение программы
Рисунок 3. Массив из 10 элементов типа char
Пример 3. Массив из 30 вещественных чисел.
double M[30]; // массив из 30 вещественных чисел // обнуление массива M for (int i=0; i
5. Как определить размер одномерного массива?
Размер одномерного массива определяется по формуле:
размер массива = размер типа в байтах × количество элементов
Пример.
Если в массиве 20 элементов типа double (8 байт), то размер массива будет
размер = 20 × 8 = 160 байт
6. Особенности обработки массивов компилятором в C++ . Границы массива
В C++ не ведется строгого контроля за доступом к элементам за пределами массива. Если описать массив из 100 элементов, то можно прочитать или изменить 101-й, 102-й и следующие элементы.
На этих позициях могут быть ячейки памяти, которые были выделены для других переменных или даже для вашей программы. Это может привести к уничтожению программы при отсутствии каких-нибудь замечаний со стороны компилятора C++ .
Вся ответственность за соблюдение границ массивов лежит строго на программисте. Программист должен писать такой код, который гарантирует корректную работу с массивами. Это реализуется с помощью включения в программу специальных проверок.
7. Как осуществляется инициализация массива в C++ . Примеры
В C++ поддерживается два вида инициализации массивов:
- инициализация с заданием размера массива;
- «безразмерная» инициализация.
Общий вид инициализации с заданием размера массива:
тип имя_массива[размер] = < список_значений >;
- тип – тип элементов массива;
- размер – количество элементов массива указанного типа;
- список_значений – список значений инициализации элементов массива. Элементы массива разделяются символом ‘ , ‘ (запятая).
Общий вид «безразмерной» инициализации:
тип имя_массива[] = < список_значений >;
В этом случае размер массива определяется количеством элементов, которые описаны в список_значений .
Пример 1. Массив B инициализирован с заданием размера.
// инициализация массива B int B[10] = < 5, 6, 9, -8, 3, 2, 4, -90, -103, 0 >;
Пример 2. Массив C инициализирован на основе списка значений («безразмерная» инициализация).
// инициализация массива C без задания размера float C[] = < -3.9, 2.8, -1.6, 2.2 >;
8. Инициализация символьных массивов. Пример
Для символьных массивов можно использовать сокращенный вариант инициализации:
char имя_массива[размер] = «строка»;
В этом случае каждому элементу массива присваивается один символ строки. Значение размер задает размер памяти, который выделяется для массива. Значение размер должно быть не менее длины строки, в противном случае компилятор выдаст сообщение об ошибке.
Допускается также вариант инициализации массива без указания размера
char имя_массива[] = «строка»;
В этом случае размер массива равен длине строки.
Пример. Инициализация символьного массива с именем str .
// символьный массив — сокращенный вариант инициализации char str[] = «Hello!»; // другой вариант инициализации символьного массива char str2[] = < ‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘!’, ‘