Usi di puntatori

February 24

Usi di puntatori


Un computer utilizza la memoria per archiviare i dati con i valori, come i numeri, caratteri e valori bit. I dati vengono memorizzati in celle di memoria identificate con un indirizzo di memoria univoco. I puntatori sono strutture di dati che non contengono valori; invece, puntatori contengono un indirizzo di memoria di una cella di memoria che memorizza un valore. I puntatori sono utili perché consentono di costruire strutture di dati senza una dimensione definita (come gli array e liste collegate), allocare e rilasciare memoria dinamica e di eseguire la manipolazione dei dati indiretti.

C Strings

I linguaggi di programmazione lavorano con risorse limitate. Un programma deve sapere quanta memoria avrà bisogno prima dell'esecuzione. Questo crea il problema di gestire un tipo di dati ha dimensioni definito (ad esempio, un programma che 'legge «paragrafi con ogni paragrafo avente una lunghezza differente). Puntatori affrontare questa situazione, sotto forma di stringhe C. stringa AC è composto da un puntatore che punta al primo carattere della stringa e un carattere che segnala la fine della stringa (come la nuova linea carattere "\ n"). Il puntatore viene incrementato di 1 ogni volta, fino a che non indica l'ultimo carattere ( "\ n").

liste collegate

Una lista collegata è una lista che aumenta la sua dimensione come nuovi elementi vengono aggiunti alla lista. A differenza di array e stringhe C che memorizzano i dati in modo sequenziale nella memoria, liste collegate non sono necessariamente memorizzati in indirizzi di memoria adiacenti. Le liste concatenate sono formate da nodi, e ogni punto di nodo al nodo successivo. Il vantaggio di questa struttura dati è che l'elenco cambia la sua dimensione in base alle esigenze dell'utente.

Allocazione dinamica della memoria

I programmi normalmente allocare la memoria quando vengono costruiti. A volte la memoria allocata non è sufficiente per gestire i dati con dimensioni sconosciute. I programmatori usano una tecnica chiamata allocazione dinamica della memoria per essere sicuri che il programma può superare questo problema. La memoria dinamica si accede utilizzando un puntatore per puntare a un indirizzo di memoria fuori della memoria riservata inizialmente dal programma. Puntatori anche deallocare la memoria di una volta che non è più necessaria.

Indiretta manipolazione dei dati

I linguaggi di programmazione spesso richiedono la modifica del valore dei dati. Programmi utilizzano le funzioni di modificare ed eseguire operazioni sui dati. A causa della gerarchia sui programmi, i dati vengono costantemente copiato e rilascia una volta che è passata alle funzioni. Funzioni modificare i dati, ma una volta che vengono utilizzati i dati, vengono persi questi cambiamenti. Usando puntatori invece di tipi di dati di base assicura che passiamo un indirizzo di memoria per funzioni. In questo modo eventuali modifiche ai dati memorizzati l'indirizzo di memoria rimarrà per il resto della esecuzione del programma.