Multi-Dimensional Arrays
Multi-dimensional scalar arrays are used infrequently in D, but are provided for
compatibility with ANSI-C and for observing and accessing operating system data structures
created using this capability in C. A multi-dimensional array is declared as
a consecutive series of scalar array sizes enclosed in square brackets [ ]
following the base type. For example, to declare a fixed-size two-dimensional rectangular
array of integers of dimensions 12 rows by 34 columns, you would
write the declaration:
int a[12][34];
A multi-dimensional scalar array is accessed using similar notation. For example, to
access the value stored at row 0 column 1 you would write
the D expression:
a[0][1]
Storage locations for multi-dimensional scalar array values are computed by multiplying the
row number by the total number of columns declared, and then adding
the column number.
You should be careful not to confuse the multi-dimensional array syntax with
the D syntax for associative array accesses (that is, a[0][1] is not
the same as a[0, 1]). If you use an incompatible tuple with an
associative array or attempt an associative array access of a scalar array,
the D compiler will report an appropriate error message and refuse to
compile your program.