...ma devo dire che i puntatori mi stanno sulle balle
Ti stavo scrivendo una noiosa spiegazione, ma preferisco usare un banale esempio.
Se io scrivo all'interno di una lunga serie di caselle:
......|a|b|c|......
e poniamo che il dato "a" si trova alla cella num. 444 (un numero a caso solo esemplificativo):
1) Se ti dico, le tre lettere, che devi leggere, comincia a leggerle dalla casella num. 444, ...io che cosa ho fatto ?
Ti ho passato l'indirizzo della cella di memoria, DALLA QUALE devi cominciare a leggere quelle letterine.
Io sono un "Puntatore".
E cosa farai tu ? Tu leggerai "a", poi "b", poi "c".
2) Se io ti dico, le tre lettere, che devi leggere, comincia a leggerle dalla casella num. 444 + 1 (ossia indice 1), e quindi num. 445.
Cosa ho fatto io ? ...aritmetica dei Puntatori.
E cosa farai tu ? Tu leggerai "b", poi "c" e poi... l'altro dato che sarà presente alla casella num. 444 + 3 (ossia indice 3), che però noi non conosciamo.
Quindi il Puntatore ti permette, aggiungendo e sottraendo numeri al valore dell'indirizzo di memoria da esso contenuto, di spostarti nella memoria (
così come fai con un array o un file, tant'è che in modo semplificato esiste anche la forma
zuccherina: variabile_puntatore[index]).
Cosa c'è di taaaaaanto difficile nei Puntatori ?