An array in C++ is a data structure for storing related information of the same data type. Each storage location in an array is called an array element and is identified by an array index or key. The lowest index address corresponds to the first element and the highest index address to the last element.
The declaration statement for an array is similar to the one used to declare any other variable. An array is declared by writing the data type and array name followed by the number of elements the array holds inside square brackets –
int arraydata[50];
The arraydata array (above) holds 50 sequential int integers. This declaration causes the compiler to set aside enough memory to hold all 50 elements. If each integer requires 4 bytes, then the array declaration will reserve 200 contiguous bytes of memory. Array elements are numbered from 0 up to the largest element, or 0 to 49 in the case of the arraydata array. Any attempt to initialise more elements than you’ve declared for the array generates a compiler error.
An array can be initialised by using a list of comma-separated values enclosed in braces:
int arraydata[10] = { 0, 10, 20, 30, 40, 50, 60, 70, 80, 90 };
If the size of the array is omitted, an array just big enough to hold the initialisation values is created.
int arraydata[] = { 10, 20, 30, 40, 50 };
The built-in C++ function sizeof() can be used to count the number of elements in an array:
int arrSize = sizeof(arraydata) / sizeof(arraydata[0]);
An element is accessed by indexing the array name. This is done by placing the index of the element within square brackets after the name of the array. These indexes are called zero-based because the first element in an array is at index 0. The first integer value stored in an array arraydata[10] is arraydata[0], the second is arraydata[1], and so on. The index of the last element in an array is always (Length of Array – 1) or arraydata[9].
Although, in theory, it's possible for an array to have any number of dimensions, it is rare for an array to have more than two dimensions. When an array is declared, each dimension is represented as a subscript in the array.
If an array can be thought of as a single row of data then a two-dimensional array could be pictured as a table of data consisting of rows and columns or a list of rows. A three-dimensional array could be a cube, with one dimension representing width, a second dimension representing height, and a third dimension representing depth.
A two-dimensional array has two subscripts:
int array[5, 13];
A three-dimensional array has three subscripts:
int cube[5, 13, 8];
Multidimensional arrays can be initialised with values just like single-dimension arrays. Values can be assigned using nested braces, with each set of numbers representing a row as below -
3 different ways to initialise a two-dimensional array.
int c[2][3] = {{1, 3, 0}, {-1, 5, 9}};
int c[][3] = {{1, 3, 0}, {-1, 5, 9}};
int c[2][3] = {1, 3, 0, -1, 5, 9};
Initialisation of a three-dimensional array.
int test[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} }
}
Last Updated: 15 September 2022