Paso 3: Declarar un puntero
En el ejemplo de la primera sección fue un aspecto muy básico en cómo declarar un puntero.Una variable de puntero que no ha sido lo contrario desencadenar contiene un valor desconocido. Puede inicializar una variable puntero con una dirección de una variable del mismo tipo utilizando el operador ampersand (&).
char cSomeChar = 'a';
char * pChar;
pChar = & someChar;
En este fragmento de código, la variable cSomeChar tiene alguna dirección. Por el bien del argumento, digamos que C++ se asigna la dirección 0x1000. (C++ inicializa también ese lugar con el carácter 'a'.) La variable pChar también goza de una ubicación propia, tal vez 0x1004. El valor de la expresión & someChar es 0x1000, es de tipo char * (leer "puntero a carácter"). Tan la asignación en la tercera línea del ejemplo de fragmento de código almacena el valor 0x1000 en la variable pChar.
Tómese un minuto para entender realmente las tres líneas de código de C++. La primera declaración dice: "salir y encontrar un lugar de 1 byte, asígnele el nombre cSomeChar e inicializar a 'a'. En este ejemplo, C++ escogió la ubicación 0x1000.
La tercera línea dice, "asignar la dirección de cSomeChar (0x1000) para la variable pChar."
"¿Y qué?" dices. Aquí viene la parte verdaderamente interesante muestra en la siguiente expresión:
* pChar = 'b';
Esta línea dice, "tienda a 'b' en el lugar de char señaló por pChar." Para ejecutar la expresión, C++ primero recupera el valor almacenado en pChar (que sería 0x1000). Continuación, almacena el carácter 'b' en ese lugar.
La * cuando se utiliza como un operador binario significa "multiplicar"; Cuando se utiliza como un operador unario, * significa "encontrar lo que apunta a...". Del mismo modo y tiene un significado como un operador binario (que no discutir), pero como un operador unario, que significa "tomar la dirección de...".