Пример 1
Цели изучения темы
· изучить работу с одномерными и двумерными массивами;
· изучить работу с указателями.
Объявление массива
Массив – это множество однотипных данных, объединенных под одним именем.Формат объявления массива: <тип элементов массива> <имя массива>[количество элементов массива]где тип элементов массива – любой тип данных языка С++Примерint mas[3]; // объявлен массив из 3 целых чисел
Нумерация в массивах начинается с нуля. Поэтому массив mas содежит элементы, которые обозначаются: mas[0], mas[1], mas[2].
Массив можно инициализировать при объявлении. В этом случае нет необходимости указывать его размер.
Примерint mas[]={23, 25, 81}; // объявлен и инициализирован массив из 3 целых чиселЭлементы массива mas получили значения:
mas[0]= 23,mas[1]= 25,mas[2]= 81.Массив символов в С++ представляет собой строку символов. При этом строка символов обязательно заканчивается признаком конца, которым служит символ ‘\0’.
Примерchar city [ ] = "Москва";Массив city будет содержать строку из 7 элементов: 6 букв и 0-символ. 0-символ является признаком конца строки, в программе он обозначается \0.
Такой способ инициализации не подходит, если в дальнейшем в массив city потребуется занести название другого города с длинным названием.
Можно описать название города по-другому:
char city1[ ] = {'М', 'о', 'с', 'к', 'в', 'а' }Массив city1 – это массив символов; он будет содержать 6 элементов (символов).
Примечание. В одинарных кавычках (апострофах) ‘b’ записывают символы, в двойных – строки символов, потому что последний символ строки символов – признак конца строки ‘\0’. Поэтому ‘b’ – это один символ, а “b” – два (символ b и символ конца строки).
Объявленные выше массивы city и city1 в памяти ПК представлены следующим образом:
№ | City | № | City1 |
М | М | ||
О | о | ||
С | с | ||
К | к | ||
В | в | ||
А | а | ||
/0 |
Вышеописанный способ инициализации возможен только при объявлении массива. В программе необходимо использовать поэлементную инициализацию:
city [0]='м';
Доступ к элементам массива
В языке C++ имя массива представляет собой не только имя, которое вы используете в своих программах, но и является адресом, по которому в памяти находится первый элемент массива. Поэтому к элементам массива можно обращаться двумя способами: по индексу элемента и по смещению относительно первого элемента.
Пример
int m[6] = {4, 3 , 1, 4, 7, 8 }; Обращение к 4-му элементу массива m:m[3] – по индексу(m + 3)[0] – по смещению относительно первого элементаВозможны и другие варианты:
(m + 0)[3](m + 2)[1](m - 2)[5]
Наиболее полезно использовать такой подход к массивам, содержащим символьные строки.
Пример
char names [ ]={'Иван', 'Петр', 'Елена' }Массив names будет выглядеть в памяти следующим образом:
И | |
В | |
А | |
Н | |
\0 | |
П | |
Е | |
Т | |
Р | |
\0 | |
Е | |
Л | |
Е | |
Н | |
А | |
\0 |
Команды вывода дают следующий результат:
cout << names; // выводится «Иван» (до признака конца строки)
cout << names+5; // выводится «Петр»
Многомерные массивы
Многомерный массив – это массив, в котором элементы имеют более чем один индекс.
Чаще всего используются двумерные массивы.
При объявлении многомерного массива необходимо указать C++, что массив имеет более чем одно измерение.
Формат объявления двумерного массива: <тип элементов массива> <имя массива>[количество строк][количество столбцов]Пример 1
int t[3][4]; // описывается двумерный массив, состоящий из 3 строк и 4 столбцовЭлементы массива:
t[0][0] t[0][1] t[0][2] t[0][3]t[1][0] t[1][1] t[1][2] t[1][3]t[2][0] t[2][1] t[2][2] t[2][3]При выполнении команды объявления массива под массив резервируется место. Элементы массива располагаются в памяти один за другим: