Skip to main content

Multidimensional Arrays in C

Multidimensional Arrays in C

Multidimensional arrays in C are arrays that have more than one dimension, allowing you to store multiple related data items in a single structure.

In C, you can create arrays with any number of dimensions. For example:

  • One Dimensional Array (also called 1D Arrays or Single Dimensional Arrays)
  • Two Dimensional Array (2D Arrays)
  • Three Dimensional Array (3D Arrays)
  • And so on...
2d array

The most common type of multidimensional array is the two-dimensional (2D) array, which is often thought of as a table with rows and columns.

One Dimensional Arrays - Recap

1D arrays in C are arrays that have only one dimension, allowing you to store a sequence of related data items in a single structure. In C, you can create arrays of any size, and the elements of a one-dimensional array can be of any data type.

The syntax for declaring a one-dimensional array in C is:

data_type array_name[array_size];

For example:

The following code declares an array arr with 5 elements of type int:

int arr[5];
  • You can access the elements of a one-dimensional array using an index, which is a number that represents the position of the element in the array.

  • The index starts at 0, so the first element of the array is arr[0], the second element is arr[1], and so on.

One Dimensional Arrays - Example

Here is an example that initializes a one-dimensional array and then prints the value of its second element:

#include <stdio.h>

int main(void)
{
int arr[5] = {10, 20, 30, 40, 50};
printf("The second element is: %d\n", arr[1]);

return 0;
}
Output:

Explanation:

  • In the main function, a one-dimensional integer array arr is declared and initialized with 5 elements. The array elements are assigned values of 10, 20, 30, 40, and 50 in the order in which they are declared.
  • The program then uses the printf function to print the value of the second element of the array, which is 20. The expression arr[1] accesses the second element of the array, with the first element being at index 0.
  • Finally, the program returns 0 to indicate success.

Two Dimensional Arrays

  • Two-dimensional arrays in C (also called as 2D Arrays) are arrays that have two dimensions, allowing you to store a table of related data items in a single structure.

  • Each element in a two-dimensional array is itself a one-dimensional array with a specific number of elements.

The syntax for declaring a two-dimensional array in C is:

data_type array_name[number_of_rows][number_of_columns];

For example:

  • The following code declares a two-dimensional array arr with "3 rows" and "4 columns":
int arr[3][4];
  • You can access the elements of a two-dimensional array using two indices, one for the row and one for the column.
  • The indices start at 0, so the first element of the first row is arr[0][0], the second element of the first row is arr[0][1], and so on.

Two Dimensional Arrays - Example

Here is an example that initializes a two-dimensional array and then prints the value of its second row, third column:

#include <stdio.h>

int main(void)
{
int arr[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
printf("The value is: %d\n", arr[1][2]);

return 0;
}
Output:

Explanation:

  • In the main function, a two-dimensional integer array arr is declared and initialized with 3 rows and 4 columns.
  • The array elements are assigned values in a nested manner, with each row containing 4 values.
  • The program then uses the printf function to print the value of the element located at arr[1][2], which is 7. - The expression arr[1][2] accesses the second row, third column of the two-dimensional array.

Three Dimensional Arrays

  • Three-dimensional arrays in C (also called as 3D Arrays) are arrays that have three dimensions, allowing you to store a set of related two-dimensional data items in a single structure.

  • Each element in a three-dimensional array is itself a two-dimensional array with a specific number of rows and columns.

The syntax for declaring a three-dimensional array in C is:

data_type array_name[number_of_layers][number_of_rows][number_of_columns];

For example:

The following code declares a three-dimensional array arr with 2 layers, 3 rows, and 4 columns:

int arr[2][3][4];
  • You can access the elements of a three-dimensional array using three indices, one for the layer, one for the row, and one for the column.
  • The indices start at 0, so the first element of the first layer, first row, is arr[0][0][0], the second element of the first layer, first row, is arr[0][0][1], and so on.

Three Dimensional Arrays - Example

Here is an example that initializes a three-dimensional array and then prints the value of its first layer, second row, third column:

#include <stdio.h>

int main(void)
{
int arr[2][3][4] = {{{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}},
{{13, 14, 15, 16}, {17, 18, 19, 20}, {21, 22, 23, 24}}};

printf("The value is: %d\n", arr[0][1][2]);
return 0;
}
Output:

Explanation:

  • The program declares and initializes a three-dimensional integer array arr with 2 layers, 3 rows, and 4 columns.
  • The array elements are assigned values in a nested manner, with the first layer containing the first two-dimensional array and the second layer containing the second two-dimensional array.
  • The main function then uses the printf function to print the value of the element located at arr[0][1][2], which is 7.
  • Finally, the program returns 0 to indicate success.
note

Please note that in C, multidimensional arrays are stored in row-major order, meaning that the elements of each row are stored consecutively in memory.

When to use Multi-dimensional arrays

Multi-dimensional arrays are useful in various situations where the data can be organized in a grid-like structure.

  • Matrix operations: Multi-dimensional arrays can be used to represent matrices and perform matrix operations such as multiplication and transposition.

  • Image processing: In image processing, a two-dimensional array can be used to represent an image, with each element of the array representing a pixel in the image.

  • Tables: Multi-dimensional arrays can be used to represent tables, with each row of the array representing a row in the table and each column representing a column.

  • Game boards: Multi-dimensional arrays can be used to represent game boards, with each element of the array representing a cell or a square on the board.