An array is a collection of fixed number values of a single type. Hence, an integer array can only hold elements whose data type is also an integer.
A two-dimensional array in C can be thought of as a matrix with rows and columns. The general syntax used to declare a two-dimensional array is:
A two-dimensional array is an array of several one-dimensional arrays. Following is an array with five rows, each row has three columns:
int my_array[5][3];
The code above declares a one-dimensional array that has five elements. Each of these five elements is themselves, an array of three integers. The following diagram shows a simple way to visualize this:
A two-dimensional array can be initialized during its declaration.
#include <stdio.h>int main(){int my_array[5][3] = {{1, 2, 3}, //row 1{4, 5, 6}, //row 2{7, 8, 9}, //row 3{10, 11, 12}, //row 4{13, 14, 15} //row 5};}
The inside curly braces are optional, two-dimensional arrays can be declared with or without them.
#include <stdio.h>int main(){int my_array[5][3] = {1, 2, 3, 4, 5, 6, 7, 8,9, 10, 11, 12, 13, 14, 15};}
Just like one-dimensional arrays, two-dimensional arrays also require indices to access the required elements. A row and a column index are needed to access a particular element; for nested loops, two indices (one to traverse the rows and the other to traverse the columns in each row) are required to print a two-dimensional array.
#include <stdio.h>int main(){// array declaration and initializationint my_array[5][3] = {{1, 2, 3}, //row 1{4, 5, 6}, //row 2{7, 8, 9}, //row 3{10, 11, 12}, //row 4{13, 14, 15} //row 5};// accessing and printing the elementsfor ( int i = 0; i < 5; i++ ) {// variable i traverses the rowsfor ( int j = 0; j < 3; j++ ) {// variable j traverses the columnsprintf("my_array [%d][%d] = %d\n", i,j, my_array[i][j] );}}return 0;}