Il puntatore è una tecnica di programmazione che permette al programmatore di fare riferimento a una variabile con un riferimento di memoria anziché alla variabile stessa. Ha vantaggi e svantaggi rispetto all'utilizzo di assegnazioni di variabili dirette ed è un metodo di programmazione importante per il principiante di programmatore intermedio. Pointer Riferimenti
Quando si assegna una variabile in qualsiasi linguaggio di programmazione , una certa quantità di memoria di sistema viene accantonato per contenere i dati. Per le variabili semplici , questa di solito è una piccola quantità di memoria , ma per le liste e array di lunghezza arbitraria , la quantità di memoria utilizzata può essere estremamente grande . Alcune funzioni e operazioni eseguite su variabili comportino la necessità di copiare i dati in uno spazio di lavoro, quando le variabili operati sono grandi, la quantità di dati che deve essere copiata può rallentare il funzionamento del programma , o in situazioni di memoria limitate , provocare il programma di incidente .
Puntatori evitare questo problema creando posti preferiti nella memoria , le operazioni sono poi messi in posizioni di memoria , anziché i dati effettivi memorizzati nella variabile . Si consideri come esempio un programma che carica diverse migliaia di record da un database in una variabile di matrice . Se si esegue un'operazione come ad esempio , " restituire il quinto record dalla matrice , " in alcune lingue non ottimizzati questo duplicare l' intera lista prima del quinto record può essere trovato ed estratto . Un puntatore alla stessa posizione di memoria , tuttavia, può programmaticamente recuperare questi dati senza che l'intero array da duplicare internamente .
Pointer Errori
Bisogna fare attenzione a comprendere le operazioni interne di un linguaggio di programmazione quando si assegnano le variabili . Si consideri il seguente pseudocodice :
a = 5 b = aa = 10print b
In alcune lingue , la "b = a " operazione assegnerà il valore della variabile "a " alla variabile "b . " In questi casi , la "b print" operazione restituirà " 5 ", che era il valore di "a" , al momento è stato assegnato a " B ". Tuttavia, in altre lingue , "b = a " crea un puntatore ( o di riferimento) da " b" a " a", dando la stessa variabile di due nomi diversi . In queste lingue, quando il valore di "a" viene modificata , il valore di " b" è anche cambiato , e il risultato di " print b" sarà " 5 ".
Allo stesso modo , quando un assegnamento di variabile è semplicemente un riferimento , gli errori possono essere introdotte come segue :
a = 5 b = ACANC Aprint b
In questo caso, se "b" e "a" si riferiscono alla stessa variabile , quando la variabile a è soppresso , variabile "b" non esiste più , questo programma si concluderà con un errore di esecuzione
Ogni lingua ha le sue regole per la gestione dei puntatori, i riferimenti e le locazioni di memoria variabile , quindi le tecniche apprese per uno. lingua deve essere regolato , in base all'ambiente di programmazione che si sta utilizzando .