- 222 名前:はちみつ餃子 mailto:sage [2020/10/25(日) 18:23:36.88 ID:63196X630.net]
- >>217
型とは独立して (一部関係もあるが) lvalue (左辺値) と rvalue (右辺値) という概念があるってのは理解できてる? たとえば int x=5; x = 2; と書いたら OK だけど 5 = 2; と書いたらもちろん NG だというのはわかるよね。 変数は評価したら値が出てくるけどそれとは別に場所としての性質も持ってる。 場所と値としての性質を併せ持っているのが lvalue なんだ。 で、キャスト演算子を適用するというのは取り出した値に対して型変換することになるので、 型変換した結果は場所としての性質が失われてしまう。 つまり lvalue ではなく rvalue になってしまってこれは代入先としては有効ではない。 ---- 余談 ---- 実際には代入先は lvalue の中でも特に modifiable lvalue (変更可能な左辺値) である必要があって そのあたりの詳細は 6.3.2.1 あたりに記述がある。 kikakurui.com/x3/X3010-2003-01.html#page38-div
|

|