Per chi si avvicina alla programmazione, una delle prime cose che sembrano “sbagliate” è questa:
gli array, le stringhe e molte strutture dati partono dall’indice 0, non da 1.
Ma non è una scelta arbitraria né una cattiveria dei programmatori.
Tutto nasce dalla memoria
Un computer vede la memoria come una lunga sequenza di celle, ognuna con un indirizzo numerico.
Quando diciamo “prendi il primo elemento di un array”, in realtà stiamo dicendo:
vai all’indirizzo di partenza dell’array + uno spostamento
Se lo spostamento è zero, sei già sul primo elemento.
Questo rende i calcoli:
- più semplici,
- più veloci,
- più vicini all’hardware.
Contare da zero è una conseguenza naturale del modo in cui funzionano puntatori e indirizzi di memoria.
Matematica, non crudeltà
Anche in matematica, molti concetti partono da zero:
- gli insiemi numerati,
- le funzioni discrete,
- le potenze (2⁰ = 1).
L’informatica ha semplicemente adottato la versione più coerente con la matematica e con l’elettronica.
L’errore più comune della storia
Da questa scelta nasce anche uno degli errori più famosi di sempre: l’off-by-one error.
Un ciclo che gira una volta in più o una in meno può:
- mandare in crash un programma,
- esporre falle di sicurezza,
- causare bug difficilissimi da trovare.
Eppure, contare da zero resta la soluzione più efficiente.
Morale: non è il computer a essere strano.
Siamo noi, abituati a contare come esseri umani.
Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui
Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂
Commenta