Address Operator &- Operador de Direcciones (C++)

En el contexto de C++, un Address Operator es un mecanismo dentro de C++ que devuelve la dirección de memoria de una variable.
Estas direcciones devueltas por la dirección del operador se conocen como punteros, porque «apuntan» a la variable en memoria.
Propósitos
- Realizar el paso de parámetros por referencia, como por ejemplo por nombre.
- Establecer los valores de los punteros. La dirección del operador apunta a la ubicación en la memoria porque el valor del puntero es la dirección de memoria/ubicación donde reside el elemento de datos en la memoria.
Ejemplo
Si un usuario está tratando de ubicar la peso de 80kg dentro de los datos, la variable entera se llamaría peso y tendría el siguiente aspecto: int peso = 80 kg. A continuación, el operador de direcciones se utiliza para determinar la ubicación, o la dirección, de los datos utilizando «&peso».
Desde allí, el valor hexadecimal de la dirección puede imprimirse utilizando:
cout <<< &peso
Los valores enteros deben ser enviados a un tipo de datos largo. Aquí la ubicación de la dirección sería:
cout <<< long (&peso)
El Address Operator sólo se puede aplicar a variables con tipos fundamentales, de estructura, clase o unión que se declaran a nivel de alcance de archivo, o a referencias de matrices subscriptas. En estas expresiones, una expresión constante que no incluye la dirección-de operador puede ser añadida o restada de la dirección-de expresión.