En realidad la diferencia es bastante grande.
Esto declara un puntero 'normal' cuyo valor que guarda es constante, es decir si apunta a un entero que tiene un valor de 66, no podrás cambiar el ese número. Pero SI puedes cambiar la dirección donde el puntero apunta.
Esto en cambio declara un puntero a una dirección de memoria constante. En esta ocasión no podrás cambiar la dirección en memoria que el puntero apunta pero podrás cambiar el valor que la memoria guarda.
También puedes tener
Código:
const t_tipo * const variable
Que tiene dirección de memoria constante Y valor constante
Aquí un ejemplo rápido de la diferencia para que te quede más claro:
Código C++:
Ver originalint valor1 = 1;
int valor2 = 2;
const int* p1 = &valor1;
p1 = &valor2; //bien
*p1=22; //valor constante asi que error
int* const p2 = &valor1;
*p2 = 11; //bien
p2 = &valor2; //intentado cambiar direccion de memoria