Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Си массивы функции препроцессор.docx
Скачиваний:
0
Добавлен:
11.01.2020
Размер:
38.42 Кб
Скачать

3.3. Многомерные массивы.

Многомерные массивы в языке Си/Си++ трактуются как массивы массивов, т.е. элементами некоторого массива в свою очередь являются массивы. Рассмотрим двумерные массивы.

Двумерный массив трактуется как одномерный массив элементами, которого является массив с указанным в описании типом элементов.

0

1

2

3

4

0

3

10

0

1

2

1

3

4

5

7

8

2

0

4

2

3

9

3

10

-3

4

5

6

4


рис.1

На рисунке 1 изображена матрица, ранг которой равен 4х5. Эту матрицу можно рассматривать как совокупность одномерных массивов – строк.

0

1

2

3

4

0

3

10

0

1

2

1

3

4

5

7

8

2

0

4

2

3

9

3

10

3

4

5

6

4

Объявим целочисленный массив (матрица, ранг которой 4х5) как массив из четырёх элементов, при этом каждый его элемент в свою очередь является одномерным массивом из пяти элементов.

int A[4][5];

Местоположение конкретного элемента определяется двумя индексами. Первый индекс указывает местоположение элемента в строке, второй - в столбце.

Например, элемент А [0][0] располагается в нулевой строке и нулевом столбце, его значение равно - 3.

Порядок расположения элементов многомерного массива в памяти такой, что, прежде всего, меняется последний индекс, затем предпоследний, и т.д. лишь один раз пробегает свои значения первый индекс.

Примеры описания двумерных массивов:

1. int A [3][3] ={11, 12, 13,

21, 22, 23,

31, 32, 33};

2. float B [2][3]={{1, 2, 3}, {4, 5, 6,}};

3. double D [4][5]={{1, 2, 3, 4, 5}};

инициализировали только первую строку двумерного массива.

4.double d [4][5]= {{1}, {2}, {3}, {4}};

инициализировали в каждой строке только первый элемент, следовательно, инициализировали первый столбец двумерного массива.

5.int z [4][4]={{1}, {1, 2}, {1, 2, 3}, {1, 2, 3, 4}};

вид массива после инициализации:

0

1

2

3

1

.

.

.

0

1

2

.

.

1

1

2

3

.

2

1

2

3

4

3


рис. 2