It is common to present a two-dimensional array as an array of a one-dimensional array. Likewise, a three-dimensional array can be thought of as an array of two-dimensional arrays. Furthermore, an N-dimensional array can be thought of as an array of (N - 1)-dimensional arrays.
This approach, while mathematically correct, may not provide a useful, working framework for multi-dimensional arrays. Therefore, before we can address the C syntax for declaring, initializing, and accessing multi-dimensional arrays, a proper conceptual framework must be developed. With that firmly understood, we can then delve into C's syntax for multi-dimensional arrays.