C++ Operadores de puntero (& y *)
C++ proporciona dos operadores de puntero: uno es el operador de dirección & y el otro es el operador de indirección *.
Un puntero es una variable que contiene la dirección de otra variable. Se puede decir que una variable que contiene la dirección de otra variable "apunta" a esa otra variable. La variable puede ser de cualquier tipo de datos, incluidos objetos, estructuras o punteros.
Operador de dirección &
& es un operador unario que devuelve la dirección de memoria del operando. Por ejemplo, si var es una variable entera, entonces &var es su dirección. Este operador tiene la misma precedencia que los demás operadores unarios y, al evaluarse, procede de derecha a izquierda.
Puede leer el operador & como"operador de dirección", lo que significa,&varse lee "la dirección de var".
Operador de indirección *
El segundo operador es el operador de indirección *, que es el complemento del operador &. * es un operador unario que devuelve el valor de la variable en la dirección especificada por el operando.
Vea el siguiente ejemplo para comprender el uso de estos dos operadores.
Ejemplo
using namespace std;
int main ()
{
int var;
int *ptr;
int val;
var = 3000;
// Obtener la dirección de var
ptr = &var;
// Obtener el valor de ptr
val = *ptr;
cout << "Value of var :" << var << endl;
cout << "Value of ptr :" << ptr << endl;
cout << "Value of val :" << val << endl;
return 0;
}
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
Value of var :3000 Value of ptr :0xbff64494 Value of val :3000Otras extensiones
Operadores de C++