C言語なら、俺に聞け! <29>
■ このスレッドは過去ログ倉庫に格納されています
0081デフォルトの名無しさん
NGNGchar **cpp ;
cpp= &((char*)A) ;
をコンパイルすると左辺値でない(char*)Aに対して&を使おうとしました。って
コンパイルエラーになります。まあ、よく考えてみればその通りだと思いますが、
*(char*)A = 3 ;
ってコードはOKなわけだから*(char*)Aは左辺値なわけですよね。
左辺値でない式に*をつけると左辺値になるってことのようだけど、
これってC言語の文法だとどう説明できるかわかる方いますか?
実際にどう考えればよいかではなくて、C言語の厳密な文法ではどのように
解釈されてこのようなことが正当化されているのかってのが質問です。
わかる方いたらよろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています