Operadores de puntero C ++

C ++ proporciona dos operadores de puntero, que son (a) Dirección del operador & y (b) Operador de dirección *.

Un puntero es una variable que contiene la dirección de otra variable o se puede decir que una variable que contiene la dirección de otra variable "apunta" a la otra variable. Una variable puede ser cualquier tipo de datos, incluido un objeto, una estructura o un puntero en sí.

Los . El operador (punto) y el operador -> (flecha) se utilizan para hacer referencia a miembros individuales de clases, estructuras y uniones.

La dirección del operador y

& Es un operador unario que devuelve la dirección de memoria de su operando. Por ejemplo, si var es una variable entera, & var es su dirección. Este operador tiene la misma precedencia y asociatividad de derecha a izquierda que los otros operadores unarios.

Debería leer el operador & como "the address of" lo que significa &var se leerá como "la dirección de var".

El operador de indirección *

El segundo operador es Operador de indirección *, y es el complemento de &. Es un operador unario que devuelve el valor de la variable ubicada en la dirección especificada por su operando.

El siguiente programa ejecuta las dos operaciones

#include <iostream>
 
using namespace std;
 
int main () {
   int  var;
   int  *ptr;
   int  val;

   var = 3000;

   // take the address of var
   ptr = &var;

   // take the value available at ptr
   val = *ptr;
   cout << "Value of var :" << var << endl;
   cout << "Value of ptr :" << ptr << endl;
   cout << "Value of val :" << val << endl;

   return 0;
}

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

Value of var :3000
Value of ptr :0xbff64494
Value of val :3000