>>54
配列として宣言されたmsgはリテラル(アドレス値)だから
変更できない。msgのアドレスから保持している文字列は
変更可能だけど。

ポインタ変数として宣言された*msgはmsgというポインタ変数に
"msg"という「コンパイラがどこかに定義した文字列」のアドレス
を代入している。msgがポインタ変数だから増減もできる。

msg[]の場合
msg  'm'
msg+1 's'
msg+2 'g'

*msgの場合

msg = 0x????????

0x????????  'm'
0x????????+1 's'
0x????????+2 'g'

ということ。