On Mon, 1 Nov 2010 07:50:12 +0000 (UTC) Andreas Kaempf <andreas.kae...@web.de> wrote:
> According to the documentation, the declaration of test should declare 3 > arrays of two ints. The initialization works fine so that's ok for me. > > But why do I have to access it with test[x][y] to produce this result? Yes, this is a bit mind disturbing. If you consider each syntax independantly, they are both completely logical: * type def: since T[2] defines an array of 2 T's, then T[2][3] well defines an array of 3 arrays of 2 T's. * element access: as your literal [[11,12],[21,22],[31,32]] well shows, the 2-element arrays are the nested ones; so that, to access an element, one must first access a 2-element array --> arr[2-element-array-index][element-index] which maps to arr[row-index][element-index] as one expects. But the confrontation of both logics is somewhat troubling ;-) To solve it, one would need to reverse the array definition format: [n]T means array of n T's, [m][n]T means array of m arrays of n T's. Simply forget about it and use each syntax according to its own point if view. Denis -- -- -- -- -- -- -- vit esse estrany ☣ spir.wikidot.com