PDA

Visualizza la versione completa : [C] Apprendimento: i puntatori


kaiser89
12-12-2005, 18:14
Gentili utenti,
come pochi giorni fa avevo problemi con le funzioni,
ora ce l'ho con i puntatori.
Stesso discorso dell'altra volta:
cosa sono, a cosa servono, come si usano?????

oregon
12-12-2005, 18:35
Penso che un forum non vada sfruttato come un libro di testo o un corso ...

Penso che uno debba studiare da solo (o a scuola) e chiedere specificatamente una dritta per i problemi di programmazione, magari con un codice di esempio ...

Ma e' una mia personale opinione ...

kaiser89
12-12-2005, 18:49
si lo so hai ragione,
ma ci ho provato a studiarlo, proprio non mi entrano, quindi ho pensato di far ricorso al forum.

Luciano79
12-12-2005, 19:26
Originariamente inviato da kaiser89
si lo so hai ragione,
ma ci ho provato a studiarlo, proprio non mi entrano, quindi ho pensato di far ricorso al forum.
Forse dovresti studiare un po' di italiano, parli quasi peggio di me :D

Un paragone semplice:

Quando copi un file di notevole dimensione (copia / incolla) il pc ci mette un po' di tempo. Quando lo cancelli invece è istantaneo! Ti sei mai chiesto perchè?
Quando copi un file, sul disco viene trascritto un byte alla volta. Il pc si "annota" nel FileSystem che in quella parte del disco (a partire dal byte N in memoria, N è l'indirizzo) è presente quel file. Questa "nota" è il puntatore a quel file e contiene N. Quando cancelli il file non vengono puliti tutti i sui byte, ma viene soltanto eliminato dal FileSystem il puntatore a N. Quindi il file sul disco in realtà rimane, ma non essendoci più nessun puntatore ad esso, il sistema operativo non è più in grado di beccarlo.

Il puntatore in C è la stessa cosa, anzichè file/disco fisso utilizzi variabili/ram.
:ciauz:

kaiser89
12-12-2005, 19:36
grazie della spiegazione per newbie, ma credo proprio di non essere questo tipo di utente.
Questo lo so.
Mi chiedevo solo a cosa mi possono servire, perche a prima vista mi sembrano totalmente inutili

oregon
12-12-2005, 19:40
Originariamente inviato da kaiser89
Mi chiedevo solo a cosa mi possono servire, perche a prima vista mi sembrano totalmente inutili

I puntatori totalmente inutili ... :oVVoVe:

Sono la caratteristica piu' importante del C/C++, direi fondamentali.

Supponi solamente che il tuo programma abbia bisogno di usare una porzione di memoria, di cui non si conosce in precedenza l'estensione, in cui scrivere e leggere dei dati in forma tabulare (un array dinamico, insomma).

Come pensi si possa accedere a tale zona di memoria allocata mentre il programma viene eseguito?

XWolverineX
12-12-2005, 19:42
Originariamente inviato da kaiser89
Mi chiedevo solo a cosa mi possono servire, perche a prima vista mi sembrano totalmente inutili

SACRILEGIOOOOO
Devo ammettere che anche io la prima volta li ritenevo totalmente inutili...
Gli impieghi dei puntatori possono essere molti.
Per prima cosa servono a risparmiare la memoria e quindi passare i valori per riferimento, poi può essere il valore di ritorno di una funzione e quindi semplificare il compito...

Luciano79
12-12-2005, 20:08
Originariamente inviato da kaiser89
grazie della spiegazione per newbie, ma credo proprio di non essere questo tipo di utente.
Questo lo so.
Mi chiedevo solo a cosa mi possono servire, perche a prima vista mi sembrano totalmente inutili

Altro esempio...
Se hai un classico array di migliaia di elementi e devi inserire un elemento a metà, conosci già il casino che ti aspetta ed il numero di passaggi che il pc dovrà fare (copiare il contenuto di ogni elemento in quello successivo...), stessa cosa se devi eliminare qualcosa.
Con i puntatori puoi far questo in un solo passaggio.
Considerando che in quasi tutti i programmi si usano vettori (meglio dire liste, ma se non sai a cosa serve un puntatore ancora non puoi capirlo, figuriamoci gli alberi), i puntatori sono indispensabili. Grazie ai puntatori un programma fatto in C può essere centinaia di volte + veloce di uno fatto in vb che fa la stessa cosa.
I puntatori rendono anche il tutto + divertente :)

billiejoex
13-12-2005, 01:17
Certo che se sei così all'asciutto anche dei principali concetti di programmazione iniziare brutalmente con C la vedo parecchio dura.

kaiser89
13-12-2005, 19:33
perche' cosa c'e' bisogno di sapere prima di imparare il c???
tanto per chiedere

Loading