Sto studiando il c++ e volevo chiedervi un chiarimento riguardo i puntatori. Premetto che "vengo" dal php, quindi nn ho molta familiarità con queste cose.
Allora: i puntatori, anzichè contenere il valore di una variabile, contengono un valore esadecimale che è l'indirizzo di memoria della variabile cui è riferito. Questo l'ho capito.
La mia domanda è questa: cosa cambia tra l'utilizzo di una variabile puntatore e di una variabile normale? Perchè anzichè usare, ad esempio, la variabile int numero devo usare la variabile int *numero? Cosa cambia? Solo la gestione della memoria? E in che modo?
Io non so la sintassi, ma conosco il concetto.
Ignorando le belle definizioncine inutili e scendendo nel pratico, un puntatore non contiene un valore, ma una variabile. Tutto qui. Cosa cambia? Ti faccio un esempio.
A) Mi serve un programma che assegni una scritta variabile e che la memorizzi.
Non sapendo la scritta adesso, poichè varia, creo una variabile che conterrà il valore di quella scritta, che ora non esiste, ma che ci sarà.
In questo caso uso una variabile.
B) Mi serve un programma che assegni il valore 345 ad una variabile che non so, perchè tale variabile si deciderà in esecuzione. Che faccio? Non posso utilizzare una variabile, perchè a quale variabile assegnare 345 lo decido in esecuzione. Che faccio? Uso un puntatore. Il puntatore è UNO, ma può puntare a qualsiasi variabile.
Quindi il valore lo assegno alla variabile (che non conosco) che è assegnata al puntatore (che conosco). Tutto si basa sul puntatore.
Sono stato chiaro?
Ti sarà chiaro quando vedrai l'uso di una struttura come una LISTA... dove non sai quale è la variabile che seguirà ma ti basta o meglio DEVI sapere "dove" è la successiva
Certo se ti serve solo metterci un valore allora il puntatore non ti serve a nulla ma non è a quello che serve principalmente.
I valori esadecimali sono tali soltanto perché li vedi così nel debug probabilmente... di fatto i puntatori hanno la stessa identica dimensione della "parola" del tuo computer (ka così detta "word" del computer); si tratta dell'elemento con cui il computer dialoga "naturalmente" per tanto in un pc a 32bit è ovviamente di 32bit o 4byte che dir si voglia.
Uno dei fattori chiave dei puntatori è che permettono di "spersonalizzare" l'uso delle variabili.
Le prime volte che si utilizzano i puntatori sembra non servano a niente perchè i primi esercizi che fanno fare si potrebbero risolvere senza il loro utilizzo, come ha detto chip quando inizierete a studiare le liste le cose basilari si chiariranno molto!
in genere i puntatori su usano quando si ha a che fare con la gestione dinamica della memoria. cmq prova a dare un' occhiata ai prototipi delle funzioni più usate e vedrai quanti puntatori ci sono