hairinmybellybutt@lemmy.world to Programmer Humor@lemmy.mlEnglish · 10 个月前countinglemmy.worldimagemessage-square50fedilinkarrow-up1451arrow-down129
arrow-up1422arrow-down1imagecountinglemmy.worldhairinmybellybutt@lemmy.world to Programmer Humor@lemmy.mlEnglish · 10 个月前message-square50fedilink
minus-squaremacniel@feddit.delinkfedilinkarrow-up5·10 个月前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.
minus-squareCanadaPlus@futurology.todaylinkfedilinkEnglisharrow-up8·edit-210 个月前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”.
minus-squareBorgDrone@lemmy.onelinkfedilinkarrow-up4·edit-210 个月前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.
minus-squareLaggyKar@programming.devlinkfedilinkarrow-up3·10 个月前This is how we end up with off-by-one errors
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.
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”.
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.
This is how we end up with off-by-one errors