左辺値
読み:さへんち
外語:l-value
C/C++
の代入式において、左側に置くことができるもの。メモリー位置を表わす式であるもの。
目次
概要
特徴
概念
代入式
左辺値になれない式
概要
C
では単に、代入演算子の左側を左辺値、右側を
右辺値
と呼んだ。
C++
では
演算子のオーバーロード
という機能が追加されたため、意味合いが変わってきており、代入式の左側に置いて矛盾が生じないものを左辺値という。
特徴
概念
C++においては、右辺値とは一時的に作られる無名のオブジェクトであり、対するこの左辺値は、実体を持った名前付きのオブジェクトである。
つまり、定数などは右辺値にしかなれないが、変数は左辺値になることができる。
代入式
代入式において左辺値は代入される先を表わす。
より具体的には、代入演算子(operator=)とは、右辺値を左辺値にコピーする機能を実行する。従って左辺値とは、メモリー空間の特定の領域を指しており、その場所に値を格納したり、またはその場所から値を取り出したりできるような式でなければならない。
結果として、
変数
か、またはデリファレンス(実体化)された参照が主として左辺値となる。また、ポインターを返す変数も左辺値となりうる。
左辺値になれない式
次のようなものは左辺値になれない。
右辺値
としてのみ利用できる。
定数
& var
& pointer
array
& array
右辺値はデータの参照のみであるため寛容であるが、左辺値は実際に代入される先となるため様々な制限が存在する。
再検索