C++ Syntax: [..]


Square brackets are used to denote arrays. To declare an array of 10 Int_t integers:-
Int_t my_ints[10];
and then to access the ith:-
Caution: C++ array indeces start from 0!!, so to sum all these integers:-
Int_t sum = 0;
for (Int_t index=0; index<10; index++) sum += my_ints[index];

C++ arrays are no more dynamic than FORTRAN ones, so if the application calls for arrays where the size won't be known until execution time then a container object i.e. one that can hold other objects should be used instead, such as ROOT's TObjArray.

Multi-dimensional arrays are possible, although the syntax can drive a FORTRAN programmer a little crazy: each dimension is in a separate pair of [] and the order is reversed, so:-

Int_t my_ints[5][10];
represents 5 arrays, each being an array of 10 integers. It may help to understand C++ nests constructs to develope new ones. So, rather than have multiply dimensioned arrays, C++ reuses the single array concept but allows arrays to be stored in arrays, hence an array of arrays. Then the [] closest to the identifier has to be the one that operates first, hence the ordering.

Multi-dimensional arrays are generally very inflexible, C++ won't allow you to play the same games changing array dimensionality when passing the array to a function. This makes writing general purpose matrix processing libraries difficult. Fortunately, C++ also provides a better way of think about matrices - as objects. In this way operations on matrices become member functions of a matrix class.

See operator precedence

Other Uses for [..]


Usage Notes

Go Back to the The C++ Crib Top Page

If you have any comments about this page please send them to Nick West