What I Hate About Your Programming Language
Subject:   C, C++, Java, maybe others - zeroth element arrays
Date:   2003-05-15 03:52:41
From:   anonymous2
Response to: C, C++, Java, maybe others - zeroth element arrays

No, the cupboards in your house may not have a zeroth shelf, but they DO have bottom shelfs, which are really just the analog of the array index 0, in terms of sequence. In fact, I would propose that there really isn't a zeroth element in an array, aswell. (Much to the chagrin of what the "zeroth" jargon file entry author might have to say, I might add.)

Zero is the offset from the beginning of the array that you use to access the First element. Perhaps there is an inevitable blur in the distinction between the indexer and the indexee when dealing with arrays.

When conceptualising the digital representation of an array for your cupboard analog, you must note that it is neither wrong, nor right to assert that the first element in the array starts at 0; it is rather tradition, but useful nonetheless. Consider the following:

In Python, for instance, you can access the last element in the array with the value -1. If the first element were 1, then accessing the last element via 0 would seem rather unnatural, both mathematically and practically, as access is being performed with offsets in mind.

At the end of the day, it all boils down to the age-old philosophical quandary of the "half-filled cup" perspective. Either you approach the issue from the viewpoint that you are accessing the first element, with the quantitative equivalence of 1, or you are accessing the first element at the offset from the bottom/start of the array, or the sequential equivalence of 0.

Trying to convince anyone that they are wrong in this matter is simply a fool's toil.