[Lectura] Apuntadores y Cadenas -parte 00-

Apuntadores y cadenas.

Comprender la íntima relación entre los apuntadores, los arreglos y las cadenas.
Utilizar apuntadores en general.
Se dice que los apuntadores se encuentran entre las capacidades más dificiles de dominar de C++.  
Declaracion e inicialización de variables de apuntador.

Las variables de apuntador contienen direcciones de memoria como sus valores. Por lo general, una variable contiene de manera directa un valor especifico. En cambio, un apuntador contiene la direccion de una variable que contiene un valor especifico. En este sentido, un nombre de variable hace referencia directa a un valor, y el apuntador hace referencia a un valor de manera indirecta. Hacer referencia a un valor a través  de un apuntador a menudo se le conoce como indirección.

Los apuntadores, como cualquier otra variable, se deben declarar antes de que se puedan utilizar. Por ejemplo, la declaración:

int *ptrContador, contador;
declara la variable ptrContador de tipo int* y se lee: "ptrContador es un apuntador a int" o " ptrContador apunta a un objeto de tipo int". Además la variable contador de la declaracion anterior se declara para que sea un int, y no un apuntador a int. El * de la declaracion se aplica solamente a ptrContador. Cada variable que se declara como apuntador debe ser precedida por un asterisco *.  Por ejemplo, la declaración:

double *ptrX, *ptrY;

indica que tanto ptrX como ptrY son apuntadores a valores double. Cuando aparece * en una declaración, no es un operador, sino que indica que la variable que se declara es un apuntador. Los apuntadores se pueden declarar para apuntar a objetos de cualquier tipo de dato.

Los apuntadores se deben inicializar cuando se declaran, o en una instrucción de asignación. Un apuntador se debe inicializar en 0, NULL o en una dirección. Un apuntador con valor 0 o NULL apunta a nada. La constante simbólica NULL se define dentro del archivo de encabezado <iostream> (y en muchos otros archivos de encabezado de la biblioteca estándar) para representar el valor 0. Inicializar el apuntador en NULL es equivalente a inicializar un apuntador en 0, pero en C++, se utiliza 0 por convención. Cuando se asigna 0, se convierte en un apuntador del tipo apropiado. El valor 0 es el único valor entero que se puede asignar de manera directa a una variable de apuntador sin tener que convertir primero el tipo del apuntador.

Apuntes:
Inicialice los apuntadores para prevenir apuntar a nada, o inicializar áreas de memoria.

Bueno:
Aunque  no es un requerimiento, incluir las letras prt en los nombres de las variables de apuntador hace más claro que estas variables son apuntadores y se deben manipular de manera apropiada.

Malo:
Asumir que el * utilizado para declarar un apuntador se distribuye a todos los nombres de variables en una lista separa por comas correspondiente a una declaración, puede provocar errores. Cada apuntador se debe declarar mediante el * como prefijo del nombre.



-Lecturas tomadas del libro Como Programar de Pearson Prentice Hall, Deitel Deitel-