Come implementare i puntatori in C ++?



Questo articolo ti introdurrà al concetto di puntatori in C ++ e poi lo seguirà con una dimostrazione pratica di supporto.

Puntatori in C ++ è una variabile che contiene l'indirizzo di un'altra variabile in c ++. L'indirizzo è memorizzato nella variabile pointer e aiuta nell'implementazione della call-by-reference.

I seguenti suggerimenti saranno trattati in questo articolo,





Partendo da questo articolo sui puntatori in C ++

Sintassi:



datatype * pointername ESEMPIO: int * ptr
  • Una variabile puntatore ha un segno * prima del nome.
  • Un puntatore è anche chiamato localizzatore o indicatore.

Usi del puntatore:

  • Allocazione dinamica della memoria
  • In vari programmi di array, struttura e funzioni

Ecco un codice di esempio:

#include utilizzando lo spazio dei nomi std int main () {int num = 17 int * ptr ptr = & num cout<< 'Value at ptr = ' << ptr << 'n' cout << 'Value at var = ' << num << 'n' cout << 'Value at *ptr = ' << *ptr << 'n' } 

Produzione:
Output - Puntatori in C ++ - Edureka



differenza tra hashmap e hashtable

Spiegazione:

Nel programma sopra, mostriamo il funzionamento di base di un puntatore. Abbiamo una variabile intera num con valore 17. Abbiamo una variabile puntatore ptr di tipo int. Assegniamo l'indirizzo di num al puntatore ptr.

Per prima cosa stampiamo il valore di ptr, che è l'indirizzo. Successivamente, stampiamo il valore num e alla fine stampiamo il valore nella posizione tenuta dal puntatore ptr.

Andando avanti con questo articolo sui puntatori in C ++

Puntatori e array:

Possiamo considerare il primo elemento di un array come un puntatore, poiché il nome dell'array contiene l'indirizzo del primo elemento. Possiamo usare un puntatore nel modo seguente.

Ecco un codice di esempio:

#include utilizzando lo spazio dei nomi std int main () {int arr [3] = {5, 10, 20} int * ptr ptr = arr cout<< 'Elements of the array are: ' cout << ptr[0] << ' ' << ptr[1] << ' ' << ptr[2] } 
 Produzione: 

Spiegazione:

Nel programma sopra, mostriamo il funzionamento di base di un puntatore con un array. Abbiamo un array arr con valori 5,10,20. Abbiamo la variabile puntatore ptr di tipo int. Assegniamo l'indirizzo di arr al puntatore ptr.

Per prima cosa stampiamo il valore di ptr [0], che è il primo elemento dell'array. Successivamente, stampiamo rispettivamente il secondo e il terzo elemento. Poiché gli elementi dell'array vengono memorizzati consecutivamente, il puntatore può accedere all'altra posizione dell'array mediante incremento.

Andando avanti con questo articolo sui puntatori in C ++

Puntatori nulli:

Esistono tipi di puntatori che non hanno valore e contengono un valore nullo

Esempio :

int * ptr = NULL

Sono molto utili nelle strutture dati come un elenco collegato.

differenza tra c c # e c ++

Andando avanti con questo articolo sui puntatori in C ++

Puntatori vuoti:

Questi sono i tipi di puntatori che non hanno un tipo restituito.

Andando avanti con questo articolo sui puntatori in C ++

Operazione aritmetica del puntatore:

È possibile eseguire diverse operazioni sui puntatori. Ecco alcuni tipi importanti.

  • incrementato (++)
  • decrementato (-)
  • differenza tra due puntatori (p1-p2)
  • aggiunta di un numero intero a un puntatore (+ o + =)
  • sottrazione di un numero intero da un puntatore (- o - =)

Ecco un codice per dimostrare alcune di queste operazioni:

#include using namespace std int main () {int arr [3] = {10, 100, 200} int * ptr ptr = arr for (int i = 0 i<3 i++) { cout << 'Value at different locations of array using *ptr = ' << *ptr << 'n' ptr++ } } 

Produzione:

Spiegazione:

Dimostriamo che la semplice operazione aritmetica di incremento della variabile pointer è mostrata nel programma sopra.

Andando avanti con questo articolo sui puntatori in C ++

Pointer to Pointer:

In questo tipo di sistema, ci sono due puntatori. Il primo puntatore punta al secondo puntatore e il secondo puntatore punta alla variabile che contiene il valore.

Ecco un codice di esempio:

#include utilizzando lo spazio dei nomi std int main () {int num int * ptr int ** pptr num = 3000 ptr = & num pptr = & ptr cout<< 'Value of num :' << num<< endl cout << 'Value available at *ptr :' << *ptr << endl cout << 'Value available at **pptr :' << **pptr << endl return 0 } 

Produzione:

Andando avanti con questo articolo sui puntatori in C ++

algoritmo ordina c ++

Puntatore alle funzioni:

Questo è un modo per passare i puntatori alle funzioni. Il parametro della funzione deve essere dichiarato come tipo di puntatore. È mostrato nel codice sottostante,

#include using namespace std float getAverage (int * arr, int size) int main () {int balance [5] = {1432, 232, 3232, 17, 502} float avg avg = getAverage (balance, 5) cout<< 'Average value is: ' << avg << endl return 0 } float getAverage(int *arr, int size) { int i, sum = 0 double avg for (i = 0 i < size ++i) { sum += arr[i] } avg = double(sum) / size return avg } 


Produzione

Questo è il modo in cui passiamo un puntatore a una funzione.

Così siamo giunti alla fine di questo articolo sui 'Puntatori in C ++'. Se desideri saperne di più, dai un'occhiata al da Edureka, una società di apprendimento online affidabile. è progettato per addestrarti sia ai concetti di base che avanzati a Java insieme a vari framework Java come Hibernate e Spring.

Hai domande per noi? Per favore, menzionalo nella sezione commenti di questo blog e ti risponderemo il prima possibile.