• JackbyDev@programming.dev
    link
    fedilink
    English
    arrow-up
    0
    ·
    13 days ago

    Yeah, but if we went back and time and changed it then there wouldn’t be other stuff relying on it being 0-based.

    • Username@feddit.org
      link
      fedilink
      arrow-up
      0
      ·
      13 days ago

      It was not randomly decided. Even before arrays as a language concept existed, you would just store objects in continuous memory.

      To access you would do $addr+0, $addr+1 etc. The index had to be zero-based or you would simply waste the first address.

      Then in languages like C that just got a little bit of syntactic sugar where the ‘[]’ operator is a shorthand for that offset. An array is still just a memory address (i.e. a pointer).