Раздел 5. Массивы
Массивы – это структуры, содержащие связанные друг с другом однотипные элементы данных.
Массивы – это «статические» сущности, они сохраняют свои размеры на протяжении всего времени выполнения программы.
Стеки, списки, очереди, деревья – это динамические структуры данных.
Массив – это последовательная группа ячеек памяти, имеющих одинаковое имя и тип. Чтобы сослаться на отдельную ячейку или элемент массива, мы указываем имя массива и номер позиции отдельного элемента массива.
-
a[0]
6
a[1]
-45
a[2]
74
a[3]
0
a[4]
7
a[5]
132
a[6]
8
a[7]
9
Массив содержит 8 элементов. На любой элемент массива можно сослаться, указывая имя массива и номер позиции элемента, заключенный в квадратные скобки ([ ]). Первый элемент каждого массива – это нулевой элемент.
Имена массивов должны удовлетворять тем же требованиям, которые предъявляются к другим именам переменных.
Номер позиции, указанный внутри квадратных скобок, называется индексом. Индекс должен быть целым числом или целым выражением. Если программа использует выражение в качестве индекса, то выражение вычисляется с целью определения индекса.
Например,
переменная b=5. а переменная c=2, то оператор
a[b+c] +=2;
добавляет 2 к элементу массива a[7].
Чтобы напечатать сумму значений, содержащихся в первых трех элементах массива a, нужно написать оператор
cout << a[0] + a[1] + a[2] << endl;
Чтобы разделить значение седьмого элемента массива a на 2 и присвоить результат переменной x, нужно написать оператор
x=a[6] / 2;
Квадратные скобки, внутри которых записывается индекс массива, рассматриваются в С++ как операция индексации и имеют тот же уровень старшинства, что и круглые скобки.
Операции |
Ассоциативность |
Тип операций |
( ) [ ] |
слева направо |
наивысший |
+ -- ! (тип) |
справа налево |
унарные |
* / % |
слева направо |
мультипликативные |
+ - |
слева направо |
аддитивные |
<< >> |
слева направо |
поместить в /взять из |
< <= > >= |
слева направо |
отношение |
== != |
слева направо |
проверка на равенство |
&& |
слева направо |
логическое И |
|| |
слева направо |
логическое ИЛИ |
?: |
справа налево |
условная |
= + = - = *= /= %= |
справа налево |
присваивание |
, |
слева направо |
запятая ( последование) |
Рис. 4.2. Приоритеты и ассоциативность операций
