PDA

Visualizza la versione completa : [C] UtilitÓ puntatori


V0D
21-01-2005, 14:25
Premetto che non Ŕ mia intenzione scatenare flame o guerre di religioni. Ecco la mia domanda: a cosa servono di preciso i puntatori? Non Ŕ pi¨ semplice fare le cose usando le variabili e lasciando perdere i puntatori?

DYNAM!C+
21-01-2005, 14:28
Originariamente inviato da V0D
Premetto che non Ŕ mia intenzione scatenare flame o guerre di religioni. Ecco la mia domanda: a cosa servono di preciso i puntatori? Non Ŕ pi¨ semplice fare le cose usando le variabili e lasciando perdere i puntatori?

ma le variabili (non puntatori)
sono anch'essere indirizzi di memoria... :fagiano:

V0D
21-01-2005, 14:44
Appunto. In sostanza, a che servono sti dannati puntatori in pratica? E' meglio usarli al posto delle variabili? PerchŔ?

anx721
21-01-2005, 14:56
Ovvio che non ha senso programmare in C senza i puntatori...i puntatori sono un argomento esteso e difficile e solo prorammando molto riesci a capirli e a capire quando servono..praticamente nel 90 % dei casi.

Esempi di cose che non possono essere fatte senza i puntatori:

- passare come argomento di una funzione una variabile per indirizzo, in modo che la funzione lavori proprio su quella variabile. In C se passi una variabile come argomento, viene creata una copia della variabile passata, e se la modifichi all'uscita dalla funzione la variabile originaria Ŕ immodificata. Se passi l'indirizzo la funzione attraverso l'indirizzo riesce ad accedere alla variabile vera e propria e non a una sua copia.

- allocare memoria dinamicamente, ad esempio array di dimensione non nota a tempo di compilazione, e strutture linkate.

- creare una variabile all'interno di una funzione e restituirla come risultato. Ad esempio, se in una funzione crei una struct e la ritorni come risultato, ci˛ che vine ritornato Ŕ solo una copia della variabile, non la variabile stessa, un po come nel caso di passaggio di argomenti. Se pero allochi la struct dinamicamente, questa sopravvive alla fine della funzione e puoi ritornare il puntatore alla struct

e varie altre cose.

V0D
21-01-2005, 19:00
Ok thanks everyone :)

Loading