Soprattutto se devi dare un esame tipo algoritmi e programmazione, allora DEVI imparare ad usare i puntatori, non credo ci sia altro modo.
Comunque imparare ad usarli bene è molto semplice:
Ti devi solo mettere 3-4 giorni col pensiero di risolverti tutti i dubbi su passaggio di parametri.
Ora non mi ricordo esattamente come funzionano perchè li ho fatti più di 2 anni fa, quindi prefrisco dirti il metodo che ho usato
-Raccogli tutti gli appunti che hai sui puntatori
-prepara carta e penna
-(al pc, su code blocks o quello che usi tu) inizi con una variabile semplice(tipo int) allocata dinamicamente, inizi a vedere come passarla da una variabile all'altra
facendo alcuni programmi e facendoli girare.
Provi a copiare l'indirizzo in una nuova variabile e a copiare solo il valore.
-Una volta che ti sei chiarito tutti i dubbi, devi scriverti perchè quel codice è giusto, tutti i ragionamenti e gli schemi, come se lo dovessi spiegare ad una persona che non sa niente di puntatori.(fidati, se per caso ti capita di non utilizzarli per un pò ti dimenticherai tutto...specie se non li usi per qualche settimana, in cui magari studi per altre materie)
-A questo punto prova a passarlo per parametro ad una funzione, ricordati che alla funzione stai passando una variabile che viene copiata SEMPRE "By Value", quindi, per ottenere un passaggio "By Reference" tu devi passare un indirizzo di memoria.
se hai una variabile classica (esempio int a;)
allora si passa con
- Codice:
funz(&a)
mentre (se non ricordo male)nel caso di un int* b, in b c'è l'indirizzo della cella in cui è contenuto il valore.
quindi scrivendo
- Codice:
funz(b)
stai facendo un passaggio "by reference", ovvero stai facendo la stessa cosa che hai fatto in a mettendo la
- Codice:
&
, ovvero stai passando l'indirizzo in memoria.
Poi quando hai finito con questi, provi con i vettori e le matrici, sia dinamiche sia statiche, e infine con le struct e con liste- alberi.(ti ho scritto queste cose perchè da me erano tutte incluse nello stesso esame, non so come sia da te.)
Con le struct e gli alberi è un pò più difficile perchè hai anche l'operatore -> , ma ragionando passo a passo, in un paio d'ore ti risolvi tutti questi dubbi e non avrai più dubbi (salvo il fatto di non usarli per un pò prima di averli ben memorizzati, per quello ti consiglio di scriverti tutti i ragionamenti e gli schemini)