Изменение строки типа char * const

я знаю этоconst char * указатель на const char, в то время какchar *const постоянный указатель на символ Я проверяю это в следующем коде:

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?    

Последняя строка не дает никакой ошибки, но вызывает неожиданное завершение программы. Почему изменяется строка, на которую указываетt не допускается?