const char *
それは const char へのポインターであり、一方は 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
許可されていないのはなぜですか?