Donald Knuth , attualmente professore emerito di "The Art of Computer Programming " presso la Stanford University, ha detto nel 1974 che considerava variabili puntatore " per essere tra i più preziosi tesori di informatica . " Eppure , più di tre decenni più tardi , i puntatori sono ancora fonte di confusione per molti programmatori principianti . Inoltre , i programmatori spesso usano puntatori in modo non corretto , quindi il codice non funziona come previsto e la questione diventa ancora più nebuloso e confuso . Un puntatore è per indirizzi
I puntatori sono variabili che contengono l'indirizzo di un'altra variabile , così essi "punto " per l'altra variabile . Programmatori sono normalmente bene con l'idea di variabili - per esempio , una variabile " x " contenente il valore di 25 . Un puntatore a " x " indica dove il valore di 25 è in realtà memorizzato. Stampa il contenuto di una variabile puntatore potrebbe visualizzare un indirizzo di memoria , tradizionalmente stampati in formato esadecimale . Stampa il contenuto della " x " visualizzerebbe 25 . L' indirizzo di una variabile non è molto diverso dal concetto di una lettera con un indirizzo postale stampata sulla busta . L' indirizzo indica il vettore mail a cui consegnare la busta . Il contenuto della busta sono separati dall'indirizzo. L' indirizzo di una variabile è dove in memoria il contenuto di una variabile vengono memorizzati .
Dichiarazione
La dichiarazione di un puntatore è specifico per il linguaggio di programmazione . Ad esempio , l'istruzione " float y = 25,5 , * pointer_to_y = &y; " dichiara e inizializza una variabile floating point "y" e una variabile puntatore . Stampa del valore di " y" produrrebbe 25,5 , mentre la stampa del valore di " pointer_to_y " produrrebbe dove " y " è memorizzato nella memoria.
Uso di puntatori
< br >
un luogo importante per i puntatori è in ingresso . Quando si chiede all'utente di inserire un numero , è necessario memorizzare il numero da qualche parte . A dire la vostra funzione di ingresso dove memorizzare il valore, è necessario dare l' indirizzo di una variabile , che sarebbe "& number_of_students " in C. Se basta specificare " number_of_students , " si sta parlando del valore corrente memorizzato nella variabile , come il contenuto della busta detto prima, piuttosto che dove memorizzare l'input dell'utente .
funzioni
è inefficiente a passare grandi quantità di dati a funzioni . I puntatori consentono di passare in cui sono memorizzati i dati che la funzione ha bisogno . La vostra funzione può accedere ai dati necessari senza il sovraccarico di passare i dati alla routine .
Complesse strutture di dati
problemi di programmazione avanzate richiedono soluzioni avanzate di programmazione e tipi di dati . I programmatori non possono facilmente risolvere tutti i problemi con la semplice intero, virgola mobile e tipi di dati carattere . I programmatori usano liste collegate spesso nei programmi , in particolare quando sono ordinati insiemi complessi di dati . Una lista concatenata è semplicemente una raccolta di dati , come ad esempio il nome di un dipendente , ID e pagare rate , memorizzati in una struttura dati . Oltre ai dati del dipendente , ogni struttura dati contiene un puntatore alla struttura dati successivo nella lista. Riorganizzare record dei dipendenti è una questione di riorganizzare i puntatori , piuttosto che dover spostare grandi quantità di dati in giro per riordinare semplicemente un elenco .