 C does not have a special provision for declaring multi-dimensional arrays, but rather relies on recursion within the type system to declare arrays of arrays, which effectively accomplishes the same thing.The index values of the resulting "multi-dimensional array" can be thought of as increasing in row-major order.Multi-dimensional arrays are commonly used in numerical algorithms (mainly from applied linear algebra) to store matrices.