Implementation matters for performance, but even beyond that, the interface matters for users. 0-based offsets are convenient for users doing math on indexes.
A pointer is just one kind of array-like indexing scheme. Good pointery languages will distinguish Address from Offset from Integer.
A pointer is just one kind of array-like indexing scheme. Good pointery languages will distinguish Address from Offset from Integer.