Inicialización de punteros

Existe un valor de punteros especial denominado NULL. Esta dirección sirve para dar a los punteros un valor conocido y comparable cuando no apuntan a un elemento válido. Es importante destacar que el hecho de definir un puntero no implica que tenga un valor válido para su uso inmediato. Para usar el operador * con un puntero es necesario que tenga asignada la dirección de un elemento válido y existente. Existen cuatro formas típicas de asignar un valor correcto a un puntero:

Ejemplo

En la función main se utilizan diferentes formas de inicializar o asignar un valor a un puntero.

#include <stdio.h>
int main(){
   char car='o';
   char *p, *q;                /* Se definen dos punteros a caracteres */
   char nombre[7]="Felipe"; 
   p=nombre;                   /* p se inicializa a la dirección de un vector */
   q=p+5;                      /* q se inicializa a una expresión que devuelve un puntero */
   *q=car;
   for (;p<&nombre[7];p++)
      printf("%c\n",*p);
   p=&car;                     /* p se actualiza a la dirección de una variable */
   *p='e';   
   printf("El valor de la variable car es %c \n",car);
   return 0;
}