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