Multidimensional Array

0 stephaniamcconn November 25, 2020

Multi-dimensional arrays are those which have more than one dimension. A multi-dimensional array is defined in much the same manner as a one-dimensional array, except that a separate pair of square brackets are required for each subscript or dimension or index. Thus, a two-dimensional array will require two pairs of square brackets, and so on. The two-dimensional array is also called a matrix. A multi-dimensional array can be defined as follows

storage_class data_type array_name[dim1]  [dim2]  ... [dimn]

Here, dim1dim2 …… dimn are positive valued integer expressions that indicate the number of array elements associated with each subscript. An m*n two-dimensional array can be thought of as a table of values having m rows and n rows. For example, int X[3][3] can be shown as follows.

Declaration of a two-dimensional array

Like a one-dimensional array, a two-dimensional array must also be declared before using it. The syntax for declaration is

[storage class] data_type arary_name[row_size][col_size]

Example:

int matrix[2][3];   // matrix is 2-D array which has 2 rows and 3 columns and it contains 6 elements

Initialization of 2-D array

Like one dimensional array, multi-dimensional arrays can be initialized at the time of array definition or declaration. A few examples of 2-D array initialization are:

  • int marks[2][3] = { 2, 4, 6, 8, 10, 12 };
  • int marks[2][3] = { { 2, 4, 6 }, {8, 10, 12} };

Accessing 2-D array elements

  • arr[0][0] – first element
  • arr[0][1] – second element
  • arr[0][2] – third element
  • arr[1][0] – fourth element
  • arr[1][1] – fifth element
  • arr[1][2] – sixth element

Example: 2-Dimensional Array

#include <stdio.h>

int main(){
   int arr[2][3] = {{2, 4, 6}, {8, 10, 12}};
   for(int i=0; i<2;i++){
      for(int j=0; j<3; j++){      printf("arr[%d][%d] = %d", i, j, arr[i][j]);
      }
   }
   return 0;
}

The output of the above program is:

arr[0][0] = 2
arr[0][1] = 4
arr[0][2] = 6
arr[1][0] = 8
arr[1][1] = 10
arr[1][2] = 12

Three Dimensional Array

Now, We learn how to declare and access a three-dimensional array.

Declaring a 3-D Array

int arr[2][3][2];

Initialization

Like two dimensional array, We can initialize a three-dimensional array in the same way. Here we will learn the methods to learn three-dimensional array.

Method 1:

int arr[2][3][2] = {1, -1 ,2 ,-2 , 3 , -3, 4, -4, 5, -5, 6, -6};

Method 2:

int arr[2][3][2] = {

     { {1,-1}, {2, -2}, {3, -3}},

     { {4, -4}, {5, -5}, {6, -6}}

}

Let’s take one example to make clear concepts on a three-dimensional array.

#include <stdio.h>

int main(){
   // initializing the three dimensional array
   int arr[2][3][2] = {
      { {1,-1}, {2,-2}, {3,-3} },
      { {4,-4}, {5,-5}, {6,-6} }
   };
   // displaying the three dimensional array values 
   for (int x = 0; x < 2; x++) {
     for (int y = 0; y < 3; y++) {
       for (int z = 0; z < 2; z++) {         printf("%d ", arr[x][y][z]);
       }
     }
   }
   return 0;
}

The output of the above program is:

1 -1 2 -2 3 -3 4 -4 5 -5 6 -6