Это зависит от языковой реализации, но чаще всего они представляются в виде последовательного блока памяти строка за строкой.Я написал об этом в моем блоге :
Выделенные массивы хранятся в динамической памяти как непрерывный кусок памяти.Двумерные массивы (такие же, как в примере выше) хранятся аналогично - каждая строка массива (индекс x, 0 - x, n) хранится вместе, поэтому для достижения ячейки x, y мы должны перейти к j + (i * width) place.
Для получения дополнительной информации о реализации массивов hoiw в C ++ посмотрите: C ++ Примечания: 2-D Layout Memory Layout
Большинство языков программирования, которые я предположил, используют аналогичный метод для хранения многомерных массивов.