C Multi Dimensional Arrays
# C Multi-Dimensional Arrays
[ C Arrays](#)
The C language supports multi-dimensional arrays. The general form of a multi-dimensional array declaration is as follows:
type name...;
For example, the following declaration creates a three-dimensional 5 . 10 . 4 integer array:
int threedim;
## Two-Dimensional Arrays
The simplest form of a multi-dimensional 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 with x rows and y columns, the form is as follows:
type arrayName ;
Where **type** can be any valid C data type, and **arrayName** is a valid C identifier. A two-dimensional array can be thought of as a table with x rows and y columns. Here is a two-dimensional array containing 3 rows and 4 columns:
int x;

Therefore, each element in the array is identified by an element name of the form a[ i , j ], where a is the array name, and i and j are the subscripts that uniquely identify each element in a.
### Initializing Two-Dimensional Arrays
Multi-dimensional arrays can be initialized by specifying values for each row within braces. Here is an array with 3 rows and 4 columns.
int a = {
{0, 1, 2, 3} , /* initialize index row 0 */
{4, 5, 6, 7} , /* initialize index row 1 */
{8, 9, 10, 11} /* initialize index row 2 */
};
The inner nested braces are optional. The following initialization is equivalent to the one above:
int a = {0,1,2,3,4,5,6,7,8,9,10,11};
### Accessing Two-Dimensional Array Elements
Elements in a two-dimensional array are accessed by using subscripts (i.e., row index and column index of the array). For example:
int val = a;
The above statement will get the element in the 3rd row and 4th column of the array. You can verify this using the diagram above. Let's look at the following program, where we will use nested loops to process a two-dimensional array:
## Example
#include
int main(){
/* an array with 5 rows and 2 columns*/
int a = {{0,0}, {1,2}, {2,4}, {3,6},{4,8}};
int i, j;
/* output each array element's value */
for(i = 0; i<5; i++ ){
for(j = 0; j<2; j++ ){
printf("a[%d][%d] = %dn", i,j, a);
}
}
return 0;
}
When the above code is compiled and executed, it produces the following result:
a = 0
a = 0
a = 1
a = 2
a = 2
a = 4
a = 3
a = 6
a = 4
a = 8
As mentioned above, you can create arrays of any dimension, but in general, the arrays we create are one-dimensional and two-dimensional arrays.
[ C Arrays](#)
YouTip