4. Punteros en C++

Los punteros se declaran igual que el resto de las variables, pero  precediendo el identificador con el operador de indirección, (*), que leeremos como "puntero a".

Sintaxis:
    <tipo> *<identificador>; 

    <tipo>* <identificador>;

Ambas formas están permitidas ( asterisco junto al tipo o junto al identificador o nombre del puntero)

Ejemplos:

int *entero;  //puntero a un tipo de dato entero

char *caracter; //piuntero a un tipo de dato caracter

float *temperatura; // puntero a un tipo de dato Flotante.

Observación:

Los punteros siempre apuntan a un objeto de un tipo determinado, PERO EL PUNTERO NO ES DE ESE TIPO DE DATOS !!.

Como pasa con todas las variables en C++, cuando se declaran sólo se reserva espacio para almacenarlas, pero no se asigna ningún valor inicial, el contenido de la variable (contiene BASURA) permanecerá sin cambios, de modo que el valor inicial del puntero será aleatorio e indeterminado. Debemos suponer que si NO se inicializa  contiene una dirección no válida.
Si "entero" apunta a una variable de tipo "int", "*entero" será el contenido de esa variable, pero no olvides que "*entero" es un operador aplicado a una variable de tipo "puntero a int", es decir "*entero" es una expresión, no una variable, que significa: ”el contenido a donde apunta el puntero” ó “ contenido de la dirección a la que apunta”.

En este link podemos tener otro material de lectura:  Punteros en Cplusplus

Vamos a presentar algo mas gráfico para tratar de explicar la idea.

Ejemplo:

int A;
int *pA;
pA = &A;


Podemos ver lo que hace cada línea y entender claramente.