Page 51 - C-Language
P. 51

Picture/formula taken from: https://en.wikipedia.org/wiki/Row-major_order


        Multi-dimensional arrays


        The C programming language allows multidimensional arrays. Here is the general form of a
        multidimensional array declaration −


         type name[size1][size2]...[sizeN];


        For example, the following declaration creates a three dimensional (5 x 10 x 4) integer array:


         int arr[5][10][4];


        Two-dimensional Arrays


        The simplest form of multidimensional array is the two-dimensional array. A two-dimensional array
        is, in essence, a list of one-dimensional arrays. To declare a two-dimensional integer array of
        dimensions m x n, we can write as follows:


         type arrayName[m][n];


        Where type can be any valid C data type (int, float, etc.) and arrayName can be any valid C
        identifier. A two-dimensional array can be visualized as a table with m rows and n columns. Note:
        The order does matter in C. The array int a[4][3] is not the same as the array int a[3][4]. The
        number of rows comes first as C is a row-major language.

        A two-dimensional array a, which contains three rows and four columns can be shown as follows:















        Thus, every element in the array a is identified by an element name of the form a[i][j], where a is
        the name of the array, i represents which row, and j represents which column. Recall that rows
        and columns are zero indexed. This is very similar to mathematical notation for subscripting 2-D
        matrices.


        Initializing Two-Dimensional Arrays

        Multidimensional arrays may be initialized by specifying bracketed values for each row. The
        following define an array with 3 rows where each row has 4 columns.


         int a[3][4] = {
            {0, 1, 2, 3} ,   /*  initializers for row indexed by 0 */
            {4, 5, 6, 7} ,   /*  initializers for row indexed by 1 */
            {8, 9, 10, 11}   /*  initializers for row indexed by 2 */


        https://riptutorial.com/                                                                               27
   46   47   48   49   50   51   52   53   54   55   56