int
can be declared as an array without having to declare 5 different variables (each with its own identifier). Instead, using an array, the five int
values are stored in contiguous memory locations, and all five can be accessed using the same identifier, with the proper index.int
called foo
could be represented as:int
. These elements are numbered from 0 to 4, being 0 the first and 4 the last; In C++, the first element in an array is always numbered with a zero (not a one), no matter its length.
type name [elements];
type
is a valid type (such as int
, float
...), name
is a valid identifier and the elements
field (which is always enclosed in square brackets []
), specifies the length of the array in terms of the number of elements.foo
array, with five elements of type int
, can be declared as:
|
|
elements
field within square brackets []
, representing the number of elements in the array, must be a constant expression, since arrays are blocks of static memory whose size must be determined at compile time, before the program runs.
|
|
{}
shall not be greater than the number of elements in the array. For example, in the example above, foo
was declared having 5 elements (as specified by the number enclosed in square brackets, []
), and the braces {}
contained exactly 5 values, one for each element. If declared with less, the remaining elements are set to their default values (which for fundamental types, means they are filled with zeroes). For example:
|
|
|
|
int
values, each initialized with a value of zero:[]
. In this case, the compiler will assume automatically a size for the array that matches the number of values included between the braces {}
:
|
|
foo
would be 5 int
long, since we have provided 5 initialization values.
|
|
name[index]
foo
had 5 elements and each of those elements was of type int
, the name which can be used to refer to each element is the following:foo
:
|
|
foo
to a variable called x
:
|
|
foo[2]
is itself a variable of type int
.foo
is specified foo[2]
, since the first one is foo[0]
, the second one is foo[1]
, and therefore, the third one is foo[2]
. By this same reason, its last element is foo[4]
. Therefore, if we write foo[5]
, we would be accessing the sixth element of foo
, and therefore actually exceeding the size of the array.[]
have related to arrays. They perform two different tasks: one is to specify the size of arrays when they are declared; and the second one is to specify indices for concrete array elements when they are accessed. Do not confuse these two possible uses of brackets []
with arrays.
|
|
|
|
|
|
12206 |
jimmy
represents a bidimensional array of 3 per 5 elements of type int
. The C++ syntax for this is:
|
|
|
|
|
|
char
for each second in a century. This amounts to more than 3 billion char
! So this declaration would consume more than 3 gigabytes of memory!
|
|
multidimensional array | pseudo-multidimensional array |
---|---|
|
|
|
|
int
" called arg
. In order to pass to this function an array declared as:
|
|
|
|
|
|
5 10 15 2 4 6 8 10 |
int arg[]
) accepts any array whose elements are of type int
, whatever its length. For that reason, we have included a second parameter that tells the function the length of each array that we pass to it as its first parameter. This allows the for loop that prints out the array to know the range to iterate in the array passed, without going out of range.
|
|
|
|
[]
are left empty, while the following ones specify sizes for their respective dimensions. This is necessary in order for the compiler to be able to determine the depth of each additional dimension.<array>
.data
).language built-in array | container library array |
---|---|
|
|
myarray[i]
. Other than that, the main differences lay on the declaration of the array, and the inclusion of an additional header for the library array. Notice also how it is easy to access the size of the library array.Previous: Name visibility | Index | Next: Character sequences |