ВУЗ:
Составители:
Рубрика:
В случае, если количество элементов в списке инициализации меньше, чем размерность массива,
начальные значения приписываются первым по счету элементам массива.
Необходимо отметить различное поведение массивов на этапах определения (описания) и исполь-
зования. При определении массива ему выделяется память, а его имя ассоциируется со всем массивом.
При использовании массива его имя воспринимается как константный указатель базового типа элемен-
тов массива. Исключение составляет операция sizeof(имя_массива). Она вычисляет длину в байтах все-
го участка памяти, выделенного под массив. Особенность операции взятия адреса (&), примененной к
имени массива, является:
имя_массива == &имя_массива == &имя_массива[0].
Доступ к элементам массива осуществляется с помощью индексированных переменных:
имя_массива[индекс]
Для первого элемента массива индекс равен нулю. В записи индексированной переменной квадратные
скобки являются операцией с двумя операндами, выполняемой по правилам адресной арифметики.
Здесь имя массива – константный указатель, являющийся адресом начала массива в основной памяти
ЭВМ, а индекс – выражение целого типа, являющееся смещением от начала массива. Эта операция ана-
логична операции обращения по адресу:
*(имя_массива + индекс).
Так как сложение коммутативно, то эта операция эквивалентна записи
*(индекс + имя_массива).
Таким образом, выражение имя_массива[индекс] адресует тот же элемент в памяти, что и выраже-
ние индекс[имя_массива].
Многомерный массив в языке С представляется как массив массивов. Определяется он следующим
образом:
тип имя_массива [N1][N2];
Разрешается создавать массивы до тридцать второй степени вложенности.
Многомерные массивы инициализируются по строкам по возрастанию номеров элементов.
П р и м е р 14
int A[2][3] = {0, 1, 2, 3};
В указанном примере элементы массива получат следующие значения: A[0][0] = 0; A[0][1] = 1;
A[0][2] = 2; A[1][0] = 3;.
В случае, когда надо изменить порядок инициализации элементов массива, используют фигурные
скобки, выделяющие элементы, предназначенные для одной строки.
П р и м е р 15
int A[4][3] = {{0}, {1, 2}, {3, 4, 5}};
здесь элементы списка инициализации расположатся в следующем порядке: A[0][0] = 0; A[1][0] = 1;
A[1][1] = 2; A[2][0] = 3; A[2][1] = 4; A[2][2] = 5; остальные элементы массива начальных значений не
получили.
При обращении к элементам массива можно пользоваться операцией обращения по адресу. Для
элемента массива В[i][j][k] такая конструкция примет вид
Страницы
- « первая
- ‹ предыдущая
- …
- 22
- 23
- 24
- 25
- 26
- …
- следующая ›
- последняя »
