Modificando una cadena char * const

Yo sé esoconst char * es un puntero a un personaje const, mientras quechar *const Es un puntero constante a un char. Estoy probando esto en el siguiente código:

const char *s = "hello";    // Not permitted to modify the string "hello"
char *const t = "world";    // Not permitted to modify the pointer t

s = "hello2";   // Valid
// t = "world2";   // Invalid, gives compilation error

// *(s + 1) = 'a';    // Invalid, gives compilation error
*(t + 1) = 'a';       // Why does this not work?    

La última línea no da ningún error, pero hace que el programa termine inesperadamente. ¿Por qué está modificando la cadena apuntada port ¿No permitido?

Respuestas a la pregunta(4)

Su respuesta a la pregunta