[796] 左辺値としての配列名
投稿者:yuya
2007/02/20 02:13:25
こんにちは。Cの「配列名」について、質問があります。
「ポインタ完全制覇」には、
char hoge[5];
hoge = "abcd";
がダメな理由は、hogeが右辺値だから、とあります。
配列名は式の中では先頭要素へのポインタ(右辺値)に読み替えられる、
という規則は、代入演算子の左側のような、
「左辺値が要求される場所」においてもそうなのでしょうか?
配列名は、右辺値(先頭要素へのポインタ)に読み替えられる前は、
配列オブジェクトそのものを表す変更不可能な左辺値なので、
「hoge = "abcd";がダメなのは、hogeは左辺値だけど変更不可能だから」
という説明であれば納得できるのですが、
どちらの説明が正しいのでしょうか?