this post was submitted on 21 Nov 2023
422 points (94.0% liked)

Programmer Humor

32396 readers
514 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] sirico@feddit.uk 1 points 11 months ago (2 children)

Haaaaaang on is that why we start on 0...

[–] DmMacniel@feddit.de 5 points 11 months ago (2 children)

No. We count start at zero because the array already starts with an element of a specific size. Starting at 1 would always skip that initial element.

[–] CanadaPlus@futurology.today 8 points 11 months ago* (last edited 11 months ago)

You could have "empty arrays" in a language if you wanted. The real reason is that you start with an offset of zero as you read an array from memory at hardware level, and so this way address is just "start address + element size * element number".

[–] BorgDrone@lemmy.one 4 points 11 months ago* (last edited 11 months ago) (1 children)

No, we start counting at one. We start indexing at zero.

An array with one element has an element count of 1, and that element would be at index 0.

[–] LaggyKar@programming.dev 3 points 11 months ago

This is how we end up with off-by-one errors

[–] LazaroFilm@lemmy.world 0 points 11 months ago

Because if you convert it back to binary, you have 0x0000 and that is one extra bit you can use instead of limiting your available values.