< .. > Curse the inventor of counting indices beginning at 0!
While I wait for my coffee to cool a little .. some history.
In most languages :-
Index counting beginning from 0 makes perfect sense when you consider this :
The name of the array usually contains a pointer to the first element of the array in memory.
The index represents the memory offsets away from the named variable memory location.
So, Offset [n] will point to each element, with offset[0] (no offset) being the first element.
[/back to my coffee]