On Tue, 30 Jun 2015 20:09:50 +0000, DLearner wrote: > Suppose: > 'int [1][2] foo;' > > Probably I misunderstand, but TDPL seems to say that foo has two > elements: > foo[0][0] and foo[1][0] > > as opposed to two elements: > foo[0][0] and foo[0][1] > > Is this correct?
No. The order of braces when indexing is the opposite of the order when declaring. The declaration > int [1][2] foo; reads innermost to outermost, "((int [1] ) [2])" When indexing foo, you index from outermost to innermost, so > foo[1] means the second one-element array and > foo[1][0] means the first element of the second one-element array.