Punteros
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 (basura).
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.