• FriendOfElphaba@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    1
    ·
    10 months ago

    This.

    One of the reasons indexing starts at zero is because back when we used to use pointers and memory addresses, the first byte(s) of an array were at the address where the array was stored. Let’s say it is at 1234. If it was an array of bytes, the first data element was at 1234, or 1234 + 0. The second element would be at 1235, or 1234 + 1. So the first element is at location 0 and the second at location 1, where the index is actually just an offset from the base address. There may be other/better reasons, but that’s what I was taught back in the 90s.

    Counting always starts at 1 (if we’re only using integers). You don’t eat a hamburger and say you ate zero hamburgers.