Многомерные массивы. Массив может быть многомерным

Массив может быть многомерным. Двумерные массивы обычно используются для представления матриц, координат и шахматных досок. Для объявления многомерного массива необходимо задать несколько размеров, заключенных в квадратные скобки.

Примеры объявления многомерного массива.

1) double b[34][20];

// Двумерный массив элементов типа double, состоящий из 34 строк и 20 столбцов, первый элемент b[0][0]

2) int a[3][10][21]; // Трехмерный массив элементов типа int, первый элемент

// a[0][0][0]

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

Примеры инициализации многомерных массивов.

int a[5][3] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; //a[0][0]=1, a[0][1]=2, a[0][3]=3

int a[5][3]={{1,2,3}, // Чтобы не запутаться в числах,

{4,5,6}, // лучше сгруппировать данные по

{7,8,9}, // строкам

{10,11,12}

{13,14,15}};

Занятие 4. Указатели и массивы.

Внимание! Вначале занятия потоковая контрольная! Повторите пройденный материал! Удачи на контрольной!

Теоретическая часть

Указатели и одномерные массивы

В языке С++ указатели и массивы тесно связаны друг с другом. Имя массива соответствует адресу его первого элемента. Поэтому можно присвоить указателю адрес первого элемента, используя просто имя массива:

int iarray[10];

int *pi;

pi=iarray; // Это то же самое, что pi=&iarray[0];

При определении массива ему выделяется память. Но как только память выделена, имя массива воспринимается как константный указатель (его значение нельзя изменить) того типа, к которому отнесены элементы массива. Для любого массива соблюдается равенство:

имя_массива = &имя массива = &имя_массива[0]

Элементы массива хранятся в памяти последовательно друг за друга. Вспомним, что к указателю можно применять операцию +, которая позволяет получить доступ к следующей ячейке памяти. Доступ к i-му элементу массива будет выглядеть следующим образом *(имя_массива + i). Таким образом, можно получить доступ ко всем элементам массива:

#include <stdio.h>

void main()

{

float mass[4];

for (int i = 0; i<4; i++)

{

*(mass+i) = i + 1;

printf("%2.1f\t", *(mass+i));

}

printf("\n");

}

Отметим, что при работе с массивами код mass[i] компилятор автоматически заменяет на *(mass+i).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: