Come dereference un puntatore c++?

Come dereference un puntatore c++?
Il dereferencing è una tecnica per ottenere dati da un indirizzo di memoria puntato da un puntatore mutabile e manipolarli. Un mutabile che contiene l'indirizzo di qualche altro mutabile è noto come puntatore. Il segno (*) verrà utilizzato come operatore di dereference. Dereferencing Un puntatore si verifica ogni volta che l'operatore (*) viene lanciato nel puntatore mutabile. Ogni volta che un puntatore viene dereferenziato, il valore del mutabile rappresentato dal puntatore viene ripristinato. Pertanto, discuteremo del concetto di dereferencing un puntatore in C ++ mentre utilizzano Ubuntu 20.04 Sistema. Facciamo un nuovo inizio con la creazione di un file in Ubuntu usando il comando "touch" terminale. Il file verrà creato nella directory "Home" di root della tua macchina. Può essere aperto in uno qualsiasi degli editori che hai nel tuo sistema. Preferiamo che l'editor "nano" apra il file vuoto all'interno della console terminale.
$ touch dereference.cc
$ nano dereference.cc

Esempio 01:

Dobbiamo iniziare con l'inclusione di una libreria "iostream" per l'utilizzo del flusso input-output in c++. La parola chiave #include viene utilizzata per farlo. Quindi, uno spazio dei nomi standard è arrivato a consentirci di utilizzare le dichiarazioni standard COUT e CIN. Tutto il lavoro è stato eseguito all'interno del metodo principale (). Abbiamo inizializzato una variabile intera "N" con il valore 1. Un puntatore di tipo intero "P" viene utilizzato per riferimento all'indirizzo variabile "N" tramite l'operatore "&". La prima istruzione Cout viene utilizzata per visualizzare il valore della variabile "N" sulla shell tramite il puntatore "P."La prossima istruzione Cout viene utilizzata per mostrare il valore di una variabile" N "sulla shell.

#includere
Utilizzo dello spazio dei nomi std;
int main ();
int n = 1;
int* p = & n;
cout<<"Address of n: "<cout<<"Value of n: "<<*p<

Devi compilare il nuovo codice con il compilatore G ++ appena installato di Ubuntu per il linguaggio C ++. A partire da ora, non sono stati riconosciuti errori. Dopo questo, abbiamo eseguito il codice con "./UN.comando out "e ottenuto l'indirizzo e il valore della variabile" n "usando la dereference puntatore.

$ g ++ dereference.cc
$ ./UN.fuori

Esempio 02:

Facciamo un altro esempio un po 'diverso dall'esempio sopra. Quindi, l'esempio è stato avviato con la stessa intestazione della libreria del flusso di input-output e lo spazio dei nomi standard "STD" con la parola chiave "usando". Ora, la funzione principale () viene avviata con la dichiarazione e l'inizializzazione di una variabile stringa "V" con il valore della stringa "Linux."Dopo questo, abbiamo dichiarato un puntatore di tipo stringa per eseguire il dereferencing e metterlo in relazione con la variabile" V "tramite l'operatore" & ". La dereferencing viene utilizzata qui per recuperare il valore da una variabile attraverso il puntatore. L'unica modifica è il valore di una variabile, i.e., stringa invece di un numero intero. La prima clausola Cout viene utilizzata per visualizzare l'indirizzo di una variabile "V" e l'altra istruzione Cout viene utilizzata per visualizzare il valore della variabile "V."Salviamo lo script ed eseguiamo il nostro codice.

#includere
Utilizzo dello spazio dei nomi std;
int main ();
String v = "Linux";
stringa *p = & v;
cout<<"Address of v: "<cout<<"Value of v: "<<*p<

Il codice è stato compilato. Dopo questo, abbiamo eseguito il codice semplice e ottenuto l'indirizzo e il valore di una variabile "V" dopo l'utilizzo del metodo di dereferencing tramite il puntatore.

$ g ++ dereference.cc
$ ./UN.fuori

Esempio 03:

Facciamo il nostro ultimo ma non il minimo codice iniziato con l'intestazione della biblioteca, io.e., iostream e lo spazio dei nomi standard "std" ancora una volta. Abbiamo dichiarato due variabili interi all'interno della funzione principale (), v1 e v2. Mentre V1 è inizializzato con il valore "5". Le prime due istruzioni Cout mostrano i valori correnti di V1 e V2 sulla shell e il terzo visualizza l'indirizzo "P" puntatore. La prossima dichiarazione di Cout ci dice che ora eseguiremo il dereferencing. Quindi, abbiamo usato l'istruzione "P = & V1" per assegnare l'indirizzo di una variabile V1 al puntatore P. Questo si chiama dereferencing. Il puntatore “P” viene utilizzato per mostrare l'indirizzo e il valore della variabile V1 sulla shell tramite le clausole Cout. Ora stiamo assegnando il valore del puntatore "P" (che è v1) alla variabile V2. L'istruzione Cout visualizzerà il valore di V2 e il puntatore “P” viene assegnato con un nuovo valore di 10. Le ultime 4 dichiarazioni mostrano i valori nuovi o attuali di V1, V2 e puntatore “P."

#includere
Utilizzo dello spazio dei nomi std;
int main ();
int v1 = 5, v2;
cout<<"Value of v1: "<cout<<"Value of v2: "<int *p;
cout<<"Value of pointer p: "<cout<<"************* After using p=&v1 ************** "<p =&v1;
cout<<"Address of v1: "<cout<<"Value of v1: "<<*p<v2 =*p;
cout<<"************* After using v2=*p ************** "<cout<<"Address of v2: "<*p = 10;
cout<<"************* After using *p=10 ************** "<cout<<"Address of p: "<cout<<"Value of p: "<<*p<cout<<"Value of v1: "<cout<<"Value of v2: "<

I valori di avvio di V1 e V2 sono stati visualizzati insieme all'indirizzo del puntatore. Dopo "P = & V1", l'indirizzo di "P" viene sostituito con quello di V1. Dopo "v2 =*p", un valore di riferimento a "p" viene assegnato a v2. Usando "*p = 10", il valore del puntatore “P” diventa 10 e a causa della dereferenziazione, V1 diventa anche 10. Mentre V2 e l'indirizzo del puntatore sono gli stessi.

$ g ++ dereference.cc
$ ./UN.fuori

Conclusione:

Quindi, questo era tutto su come fare riferimento a un puntatore in c++. Abbiamo usato questo concetto per recuperare i valori di una variabile e modificare o aggiornare il valore. Speriamo di fornirti con successo contenuti semplici e facili da capire.