ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
C/C++の代入式において、左側に置くことができるもの。メモリー位置を表わす式であるもの。
Cでは単に、代入演算子の左側を左辺値、右側を右辺値と呼んだ。
C++では演算子のオーバーロードという機能が追加されたため、意味合いが変わってきており、代入式の左側に置いて矛盾が生じないものを左辺値という。
C++においては、右辺値とは一時的に作られる無名のオブジェクトであり、対するこの左辺値は、実体を持った名前付きのオブジェクトである。
つまり、定数などは右辺値にしかなれないが、変数は左辺値になることができる。
代入式において左辺値は代入される先を表わす。
より具体的には、代入演算子(operator=)とは、右辺値を左辺値にコピーする機能を実行する。従って左辺値とは、メモリー空間の特定の領域を指しており、その場所に値を格納したり、またはその場所から値を取り出したりできるような式でなければならない。
結果として、変数か、またはデリファレンス(実体化)された参照が主として左辺値となる。また、ポインターを返す変数も左辺値となりうる。
次のようなものは左辺値になれない。右辺値としてのみ利用できる。
右辺値はデータの参照のみであるため寛容であるが、左辺値は実際に代入される先となるため様々な制限が存在する。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます