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.