Пример 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]

При выполнении команды объявления массива под массив резервируется место. Элементы массива располагаются в памяти один за другим: