Modificando uma cadeia char * const

Eu sei dissoconst char * é um ponteiro para um const char, enquantochar *const é um ponteiro constante para um char. Eu estou testando isso no seguinte 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?    

A última linha não apresenta nenhum erro, mas faz com que o programa termine inesperadamente. Por que está modificando a string apontada port não permitido?

questionAnswers(4)

yourAnswerToTheQuestion