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:
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; }