Массив
- Понятие массива:
- Массив – это совокупность переменных, которая позволяет хранить несколько однотипных значений.
- Все значения этой совокупности объединены под одним именем.
- При этом каждая переменная в массиве является самостоятельной единицей под названием - элемент.
- Каждый элемент имеет свой порядковый номер - индекс. По индексу можно обращаться к конкретному элементу массива.
- Нумерация элементов в массиве начинается с нуля.
- Расположение массива в памяти.
Массив располагается в памяти последовательно, элемент за элементом. Сначала лежит нулевой, потом первый и т.д. Элементы располагаются по возрастанию адреса: Один элемент массива отстоит от другого на количество байт, равное базовому типу массива. Формула, по которой производится позиционирование по массиву:
базовый адрес + размер базового типа * индекс;
Если указывается неправильный адрес производится позиционирование базового адреса на адрес, вычисленный по формулам. При этом программа получает полный доступ к содержимому ячейки памяти, которая ей по сути не пренадлежит. В результате этого может произойти ошибка на этапе выполнения.
Каждый элемента массива имеет свою собственную размерность, которая напрямую зависит от типа всего массива. Например, если массив имеет тип данных int - размер каждого элемента в нем - 4 байта. Таким образом, общий размер всего массива вычисляется по формуле:
ОБЩИЙ_РАЗМЕР = РАЗМЕР_ТИПА_ДАННЫХ*КОЛИЧЕСТВО_ЭЛЕМЕНТОВ_В_МАССИВЕ
Синтаксис объявления массива
Для начала, нам необходимо научиться создавать массив. А, для этого - во-первых, определить общий синтаксис. Во-вторых, выяснить, каким правилам и ограничениям этот синтаксис подчиняется.
тип_данных имя_массива[количество_элементов];
- тип_данных - любой из существующих, известных вам типов данных. Именно этим типом будет обладать каждый элемент массива.
- имя_массива - любое имя, которое подчиняется "правилам имен переменных" (эти правила мы рассматривали с Вами в первом уроке).
- количество_элементов - число элементов в массиве. На данном месте должно находиться - целочисленное константное значение. Таким значением может быть - либо целочисленный литерал, либо константная целочисленная переменная.
- Вариант первый: Объявлен массив ar, состоящий из 5 элементов, каждый из которых имеет тип данных int.
int ar[5];
- Вариант второй: Объявлена константа size, значение которой равно 3, а затем, массив br, состоящий из 3 элементов, каждый из которых имеет тип данных double.
const int size=3; double br[size];
Обращение к элементам массива
- Первый способ - через индексы
Рассмотрим, как обратиться к конкретному элементу массива. Запись значения:
имя_массива[индекс_элемента]=значение;
Получение значения:
cout<<имя_массива[индекс_элемента];
Здесь, на место индекса_элемента может быть подставлено ЛЮБОЕ целочисленное значение, в том числе выражение, результатом которого является целое число.
const int size=5; int ar[size]; // создание массива ar[2]=25; // запись значения 25 в элемент с индексом 2 cout<<ar[2]<<"\n"; // вывод на экран значения элемента с индексом 2 - 25
- Второй способ - через указатели. Указатели и массивы
Варианты инициализации массива
Заполнить массив данными можно двумя способами:
- Первый способ – инициализация при создании.
тип_данных имя_массива[количество элементов]={значение1, значение2, значение3, … значение n}; const int size=3; int ar[size]={1,30,2};
При такой форме инициализации есть некоторые особенности:
- Все значения списка инициализации имеют такой же тип данных, как и сам массив, поэтому при создании количество элементов можно не указывать. Операционная система сама определит размер массива исходя из числа элементов в списке инициализации.
тип_данных имя_массива[]={значение1, значение2, значение3, … значение n}; int ar[]={1,30,2}; //В данной строке массив автоматически получит размер 3.
- Если число элементов в списке инициализации меньше чем число элементов массива, то оставшиеся значения автоматически заполняются нулями:
int ar[5]={1,2,3}; такая запись эквивалентна записи: int ar[5]={1,2,3,0,0};
- Если значений в списке инициализации больше чем количество элементов массива, то происходит ошибка на этапе компиляции:
int array[2]={1,2,3}; // ошибка на этапе компиляции
- Второй способ - инициализация массива при помощи цикла. В этом случае заполнить массив значениями, можно с помощью пользователя.
Двумерные массивы (матрицы)
Одномерный массив - массив данных, где каждое значение обладает только одной характеристикой - порядковым номером (индексом). Именно по этому индексу мы и обращаемся к конкретному элементу.
Сегодня мы поговорим о многомерных массивах, т. е. о массивах, где каждый элемент описывается несколькими характеристиками.
- Объявление и расположение в памяти.
Двумерный массив представляет собой совокупность строк и столбцов, на пересечении которых находится конкретное значение. Объявить двумерный массив несложно, необходимо указать количество строк и столбцов. При этом, здесь действуют все теже правила, что и при объявлении одномерного массива. Т. е. нельзя в качестве количества строк и столбцов указывать неконстантные и нецелочисленные значения.
Общий синтаксис: тип_данных имя_массива [число_строк][число_столбцов]; Пример: const int row=3; // строки const int col=4; // столбцы int array[row][col]; // массив размером row на col(3х4)
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах