What is Multi-Dimensional Array in C?
In C programming, Multi-Dimensional Arrays refer to as array of arrays. This could be of 2D or 3D (two-dimensional or three-dimensional) Array. These arrays are stored in the form of a table (with rows and columns).
The general form of multi-dimensional array:
1 | data-type array_name [size1][size2]...[sizeN]; |
The data type must be a valid C data type, a unique name must be specified to each array and the size must be of an integer constant.
Declaration of 2d and 3d Array in C.
1 2 3 | int arr1[3][4]; //2D Array OR int arr2[3][4][3]; //3D Array |
Initialization of multidimensional array.
We can initialize a Multi Dimensional Array (two-dimensional or three-dimensional) in the following ways in C.
1. Initialization of 2d Array
1 2 3 4 5 6 7 8 9 10 11 12 | //Method1 //initializing with 5 rows and 3 columns int arr[5][3] = { {1, 2, 3}, {2, 3, 4}, {3, 4, 5}, {4, 5, 6}, {7, 8, 9} }; OR //Method2 int x[3][4] = {0, 1 ,2 ,3 ,4 , 5 , 6 , 7 , 8 , 9 , 10 , 11} |
2. Initialization of 3d Array
1 2 3 4 5 6 7 8 9 | //Method1 int arr[2][3][4] = { {{3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2}}, {{13, 4, 56, 3}, {5, 9, 3, 5}, {3, 1, 4, 9}}}; OR //method2 int arr[2][3][4] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23}; |
Accessing Multi-Dimensional Array Elements in C
Accessing 2d Array:
An array can be accessed by using a specific index number. It can be achieved by placing the particular index number within the brackets [][]. Such as:
1 2 3 4 | arr[2][3]; //the 4th element of the third row is accessed arr[3][2]; //the 3rd element of the fourth row is accessed OR int val = arr[2][3]; // assigning the element to val |
Accessing 3d Array:
Accessing 3-dimensional array is also as same as a two-dimensional array, the only difference is that in 3d array we have to specify 3 subscripts with a required index number.
Example of two -dimensional Array in C:
Displaying the elements with index number from 2D Arrays.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <stdio.h> int main() { //Array with 4 rows and 2 columns int arr[4][2] = { { 0, 1 }, { 2, 3 }, { 4, 5 }, { 6, 7 } }; int i, j; //Displaying the elements printf("Elements with index numbers:\n"); for (i = 0; i < 4; i++) { for (j = 0; j < 2; j++) { printf("a[%d][%d] = %d\n", i, j, arr[i][j]); } } return 0; } |
Output: After executing the above code, the following result will be displayed.
1 2 3 4 5 6 7 8 | arr[0][0]: 0 arr[0][1]: 1 arr[1][0]: 2 arr[1][1]: 3 arr[2][0]: 4 arr[2][1]: 5 arr[3][0]: 6 arr[3][1]: 7 |
Example of three-dimensional Array in C:
Displaying the elements with index number from 3D Arrays.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <stdio.h> int main() { int arr[2][3][2] = { { {0,1}, {2,3}, {4,5} }, { {6,7}, {8,9}, {10,11} } }; int i, j, k; // Display with index number printf("Elements with index number: \n"); for (i = 0; i < 2; ++i) { for (j = 0; j < 3; ++j) { for (k = 0; k < 2; ++k) { printf("Element at [%d][%d][%d] = %d\n", i, j, k, arr[i][j][k]); } } } return 0; } |
Output: After executing the above code, the following result will be displayed.
1 2 3 4 5 6 7 8 9 10 11 12 | Element at arr[0][0][0] = 0 Element at arr[0][0][1] = 1 Element at arr[0][1][0] = 2 Element at arr[0][1][1] = 3 Element at arr[0][2][0] = 4 Element at arr[0][2][1] = 5 Element at arr[1][0][0] = 6 Element at arr[1][0][1] = 7 Element at arr[1][1][0] = 8 Element at arr[1][1][1] = 9 Element at arr[1][2][0] = 10 Element at arr[1][2][1] = 11 |
As we saw the examples of 2D and 3D arrays, in a similar we can create any number dimension as required. However, the most used multidimensional array is a two-dimensional array.