char *const sss と char const *sss の違い
char *const sss;
char const *sss;
上記2つは何が違うのか?
constが修飾する内容が異なります。
C言語におけるconst(変更不可)は、その後に続く内容が変更不可であるという考えが分かり易いと思います。
char *const sss; とした場合は、constであるのは sss です。
なので、sssが変更出来ません。
char const *sss; とした場合は、constであるのは *sss となるので
sss が指す内容が変更出来ないのです。
記述 | sss | *sss |
---|---|---|
char *const sss | 変更不可 | 変更可 |
char const *sss | 変更可 | 変更不可 |
sss と *sss の両方とも変更させたくない場合には
char const *const sss;
と書きます。
PCの中を整理していたらかなり昔のメモが出てきたのでメモ。
懐かしいし、C言語は今でも触るのでなんだか愛着がわきます。