С позволяет создавать массивы с размерностями больше двух. Многомерный массив объявляется следующим образом:
тип имя [разнерN] ... [размер2] [размер1];
Массивы, имеющие более трех размерностей, используются чрезвычайно редко, поскольку требуется большой объем памяти для их хранения.
Важно знать, что в многомерных массивах требуется некоторое время на вычисление каждого индекса. Это означает, что доступ к элементу в многомерных массивах происходит медленнее, чем доступ в одномерных массивах. По этой и другим причинам, если возникает необходимость в многомерных массивах, для них чаще всего память выделяется динамически с использованием функции динамического выделения памяти.
При передаче многомерных массивов функции следует определить все размерности, кроме самой левой. Например, если массив m определен как
int m [4] [3] [6] [5];
то функция func1(), получающая m, может выглядеть следующим образом:
int func1 (int d[] [3] [6] [5])
{
...
}
Конечно, можно свободно включить и левую размерность, если так нравится.