Modyfikowanie łańcucha znaków char * const

wiem toconst char * jest wskaźnikiem do znaku char, podczas gdychar *const jest stałym wskaźnikiem do znaku. Testuję to w następującym kodzie:

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?    

Ostatni wiersz nie zawiera żadnego błędu, ale powoduje nieoczekiwane zakończenie programu. Dlaczego modyfikowanie łańcucha wskazywanego przezt nie dozwolony?

questionAnswers(4)

yourAnswerToTheQuestion