Лекции по проге / 7_Многомерные массивы
.pdf
Лекция №7. Многомерные массивы
Многомерные (двумерные) массивы
Объявление и инициализация многомерных массивов
Обращение к элементам многомерных массивов
Подмассивы и работа с ними
1
Двумерный массив
Двумерный массив – это одномерный массив, каждый элемент которого является одномерным массивом
Трехмерный массив – это одномерный массив, каждый элемент которого является двумерным массивом, или двумерный массив, каждый
элемент которого является 2 одномерным массивом
|
0 |
|
1 |
|
2 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
2 |
5 |
3 |
8 |
0 1
0 |
0 |
1 |
1 |
2 |
5 |
2 |
3 |
8 |
|
|
0 |
|
|
1 |
|
|
2 |
|
0 |
1 |
|
0 |
1 |
|
0 |
1 |
0 |
0 |
1 |
0 |
7 |
3 |
0 |
9 |
4 |
1 |
2 |
5 |
1 |
9 |
5 |
1 |
6 |
8 |
2 |
3 |
8 |
2 |
0 |
2 |
2 |
9 |
9 |
Многомерный массив
Массив размерности N – это одномерный массив подмассивов размерности (N-1) или двумерный массив подмассивов размерности (N-2) ...
3
Объявление многомерного массива
<тип> <имя массива> [<размер 1-го измерения>] [<размер 2-го измерения>]
...
[<размер N-го измерения>];
где N-е измерение соответствует одномерному массиву. Размер памяти, выделяемой под массив:
|
Кол-во байт = sizeof(<тип>) |
* |
|
<размер 1-го |
измерения> * |
|
<размер 2-го измерения> * |
|
|
... |
|
4 |
<размер N-го измерения> |
|
Пример объявления двумерного массива
Объявить массив для представления поля в игре «крестики-нолики» (см. рис.)
Подсчитать кол-во памяти, занимаемой массивом
0 x x
x0 x
5
Пример объявления и инициализации двумерного массива
//Поле игры ”крестики-нолики”
//0 – нолик
// 1 |
– |
крестик |
|
0 |
1 |
2 |
|
// -1 |
– |
пусто |
|
|
|
|
|
0 |
0 |
1 |
1 |
||||
|
|
|
|
|
|
|
|
char battlefield[3][3]; |
1 |
1 |
0 |
-1 |
|||
|
|
|
|
||||
2 |
-1 |
1 |
-1 |
||||
|
|
|
|||||
|
|
|
|
|
|
|
|
Кол-во памяти, занимаемой массивом =
3 x 3 x 1 = 9 байт
6
Инициализация многомерного массива
Инициализация элементов массива нулевыми значениями:
<тип> <имя массива> [<размер 1-го измерения>] [<размер 2-го измерения>]
...
[<размер N-го измерения>] = { };
7
Инициализация многомерного массива
Инициализация элементов массива различными значениями (константными массивами):
<тип> <имя массива> [ ] [<размер 2-го измерения>]
...
[<размер N-го измерения>]= {<инициализация массива размерности N-1>,
...
<инициализация массива размерности N-1>
8};
Инициализация многомерного массива
Инициализация первых элементов массива различными значениями (остальные элементы обнуляются):
<тип> <имя массива> [<размер 1-го измерения>] [<размер 2-го измерения>]
...
[<размер N-го измерения>]=
|
{<инициализация массива размерности N-1>, |
|
... |
|
<инициализация массива размерности N-1> |
|
}; |
9 |
где <размер 1-го измерения> больше количества |
инициализирующих массивов |
Пример инициализации двумерного массива
Объявить массив для представления поля в игре «крестики-нолики» и записать в массив текущее состояние поля (см. рис.)
0 x x
x0 x
10
