Языки программирования для численных методов. Глушакова Т.Н - 60 стр.

UptoLike

60
Язык С позволяет определять также массивы
массивов, в результате чего получаются многомерные массивы .
Многомерный массив определяется так же как одномерный, но
указывается нужное число размерностей , каждая в своих квадратных
скобках . Например:
int a[10][20][5];
будет трехмерным массивом. Количество размерностей (измерений ) не
ограничено . Для доступа к элементу многомерного массива используется
нужное количество квадратных скобок с индексами, например:
a[i][j][k]=0;
Фактически запись int a[10][20][5] означает 10 массивов, состоящие
из 20 массивов, каждый из которых, в свою очередь, содержит 5 элементов
типа int. При обращении a[i][j][k] будет означать один элемент типа int,
a[i][j] массив из 5 элементов типа int (адрес первого элемента), a[i] 20
массивов из 5 элементов типа int.
Массивы могут быть параметрами функции. В этом случае
размерность указывать необязательно. Вместо этого можно указать пустые
квадратные скобки []. При этом функция сможет работать с массивами
любой размерности. Однако, для работы с такими массивами ей необходим
еще один целочисленный параметр размерность массива.
С передачей двумерных и многомерных массивов дело обстоит
сложнее. В них может быть не задан только первый размер, остальные
должны быть известны . Иначе компилятор не сможет определить , как
правильно интерпретировать индексирование. Подробнее эта проблема
рассматривается в адресной арифметике.
Инициализируются массивы следующим образом. Наиболее простой
способ инициализации массива - это перечисление элементов в фигурных
скобках , например
double d[2]={3.15,9.81};
Если последние элементы нули, то при записи в фигурных скобках
они могут быть опущены , например
int a[5]={1,2,3};
При инициализации массива можно также не указывать его
размерность . В этом случае компилятор сам считает размерность массива
по количеству значений в инициализаторе:
                                  60
     Язык        С     позволяет    определять   также   массивы
массивов, в результате чего получаются многомерные массивы.
Многомерный массив определяется так же как одномерный, но
указывается нужное число размерностей, каждая в своих квадратных
скобках. Например:
     int a[10][20][5];
будет трехмерным массивом. Количество размерностей (измерений) не
ограничено. Для доступа к элементу многомерного массива используется
нужное количество квадратных скобок с индексами, например:
             a[i][j][k]=0;
       Фактически запись int a[10][20][5] означает 10 массивов, состоящие
из 20 массивов, каждый из которых, в свою очередь, содержит 5 элементов
типа int. При обращении a[i][j][k] будет означать один элемент типа int,
a[i][j] – массив из 5 элементов типа int (адрес первого элемента), a[i] – 20
массивов из 5 элементов типа int.
       Массивы могут быть параметрами функции. В этом случае
размерность указывать необязательно. Вместо этого можно указать пустые
квадратные скобки []. При этом функция сможет работать с массивами
любой размерности. Однако, для работы с такими массивами ей необходим
еще один целочисленный параметр – размерность массива.
       С передачей двумерных и многомерных массивов дело обстоит
сложнее. В них может быть не задан только первый размер, остальные
должны быть известны. Иначе компилятор не сможет определить, как
правильно интерпретировать индексирование. Подробнее эта проблема
рассматривается в адресной арифметике.
       Инициализируются массивы следующим образом. Наиболее простой
способ инициализации массива - это перечисление элементов в фигурных
скобках, например
      double d[2]={3.15,9.81};
      Если последние элементы нули, то при записи в фигурных скобках
они могут быть опущены, например
      int a[5]={1,2,3};
      При инициализации массива можно также не указывать его
размерность. В этом случае компилятор сам считает размерность массива
по количеству значений в инициализаторе: