読者です 読者をやめる 読者になる 読者になる

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言語は今でも触るのでなんだか愛着がわきます。