char a[ ]="abc";
char *b = "abc";
La principal diferencia entre los dos anteriores es: el nombre de la matriz a es una constante y el nombre del puntero b es una variable.
y entonces
while( *(a)!='\0')
putchar(*(a++));
Se informará un error
porque el nombre de la matriz es una constante de dirección, no un puntero, no una variable. No se puede modificar una dirección de matriz a través de un ++