Puntatori C ++

I puntatori C ++ sono facili e divertenti da imparare. Alcune attività C ++ vengono eseguite più facilmente con i puntatori e altre attività C ++, come l'allocazione dinamica della memoria, non possono essere eseguite senza di esse.

Come sai ogni variabile è una posizione di memoria e ogni posizione di memoria ha il suo indirizzo definito a cui è possibile accedere utilizzando l'operatore e commerciale (&) che denota un indirizzo in memoria. Considera quanto segue che stamperà l'indirizzo delle variabili definite -

#include <iostream>

using namespace std;
int main () {
   int  var1;
   char var2[10];

   cout << "Address of var1 variable: ";
   cout << &var1 << endl;

   cout << "Address of var2 variable: ";
   cout << &var2 << endl;

   return 0;
}

Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:

Address of var1 variable: 0xbfebd5c0
Address of var2 variable: 0xbfebd5b6

Cosa sono i puntatori?

UN pointerè una variabile il cui valore è l'indirizzo di un'altra variabile. Come ogni variabile o costante, è necessario dichiarare un puntatore prima di poter lavorare con esso. La forma generale di una dichiarazione di variabile puntatore è:

type *var-name;

Qui, typeè il tipo di base del puntatore; deve essere un tipo C ++ valido evar-nameè il nome della variabile del puntatore. L'asterisco che hai usato per dichiarare un puntatore è lo stesso asterisco che usi per la moltiplicazione. Tuttavia, in questa istruzione l'asterisco viene utilizzato per designare una variabile come puntatore. Di seguito sono riportate le dichiarazioni di puntatore valide:

int    *ip;    // pointer to an integer
double *dp;    // pointer to a double
float  *fp;    // pointer to a float
char   *ch     // pointer to character

Il tipo di dati effettivo del valore di tutti i puntatori, se intero, float, carattere o altro, è lo stesso, un numero esadecimale lungo che rappresenta un indirizzo di memoria. L'unica differenza tra i puntatori di diversi tipi di dati è il tipo di dati della variabile o della costante a cui punta il puntatore.

Utilizzo dei puntatori in C ++

Ci sono poche operazioni importanti, che faremo molto frequentemente con i puntatori. (a) Definiamo una variabile puntatore. (b) Assegna l'indirizzo di una variabile a un puntatore. (c)Infine accedere al valore all'indirizzo disponibile nella variabile pointer. Ciò viene fatto utilizzando l'operatore unario * che restituisce il valore della variabile situata all'indirizzo specificato dal suo operando. L'esempio seguente fa uso di queste operazioni:

#include <iostream>

using namespace std;

int main () {
   int  var = 20;   // actual variable declaration.
   int  *ip;        // pointer variable 

   ip = &var;       // store address of var in pointer variable

   cout << "Value of var variable: ";
   cout << var << endl;

   // print the address stored in ip pointer variable
   cout << "Address stored in ip variable: ";
   cout << ip << endl;

   // access the value at the address available in pointer
   cout << "Value of *ip variable: ";
   cout << *ip << endl;

   return 0;
}

Quando il codice precedente viene compilato ed eseguito, produce un risultato come segue:

Value of var variable: 20
Address stored in ip variable: 0xbfc601ac
Value of *ip variable: 20

Puntatori in C ++

I puntatori hanno molti ma semplici concetti e sono molto importanti per la programmazione C ++. Di seguito sono riportati alcuni importanti concetti relativi ai puntatori che dovrebbero essere chiari a un programmatore C ++:

Suor n Concetto e descrizione
1 Puntatori nulli

C ++ supporta il puntatore nullo, che è una costante con un valore zero definito in diverse librerie standard.

2 Puntatore aritmetico

Ci sono quattro operatori aritmetici che possono essere usati sui puntatori: ++, -, +, -

3 Puntatori vs array

Esiste una stretta relazione tra puntatori e array.

4 Matrice di puntatori

È possibile definire array per contenere un numero di puntatori.

5 Pointer to Pointer

C ++ ti permette di avere un puntatore su un puntatore e così via.

6 Passaggio di puntatori alle funzioni

Il passaggio di un argomento per riferimento o per indirizzo consente entrambi di modificare l'argomento passato nella funzione chiamante dalla funzione chiamata.

7 Puntatore di ritorno da funzioni

C ++ consente a una funzione di restituire un puntatore a una variabile locale, una variabile statica e anche una memoria allocata dinamicamente.