Пример 1

Пример

Наиболее полезно использовать такой подход к массивам, содержащим символьные строки.

Пример

Массив символов в С++ представляет собой строку символов. При этом строка символов обязательно заканчивается признаком конца, которым служит символ ‘\0’.

Цели изучения темы

Использование прототипов позволяет исключить возможные ошибки при передаче параметров.

 

 

Тема 1.6(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.Пример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++, что массив имеет более чем одно измерение.

Формат объявления двумерного массива: <тип элементов массива> <имя массива>[количество строк][количество столбцов]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]

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