lvalue・とは?初心者にもわかる基本ガイド:lvalueの意味と使い方共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
lvalue・とは?初心者にもわかる基本ガイド:lvalueの意味と使い方共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


lvalueとは?左辺値の意味と使い方をやさしく解説

プログラミングを始めたばかりの人にとって、lvalueは少し難しく感じる言葉です。日本語では「左辺値」と言いますが、これは「記憶場所を指す値」という意味です。つまり、メモリ上の特定の場所を指すことができ、そこに新しい値を代入できる値のことを指します。

lvalueとrvalueの違い

同じように使われることが多い lvaluervalue の違いをイメージで覚えると理解が進みます。lvalue は「左辺に置ける値」、rvalue は「右辺で現れる値」です。例えば次の式を考えてみましょう。

int x = 5; ここで x は lvalue です。なぜなら x はメモリ上の場所を指し、代入の左辺として使えるからです。一方 5 は rvalue です。5 は値そのものなので、左辺には置けません。

実際のコード例と解説

次の例を見てください。int a = 10; という式では a が左辺値、10 が右辺値です。a に別の値を代入することができるのは lvalue であるためです。

表で整理するとよくわかる

用語
lvalueメモリ上の特定のアドレスを持つ値。代入の左辺として使える。
rvalue値そのもの。代入の右辺として使われることが多い。
注意点最近の言語では xvalue / prvalue などの拡張概念もありますが、初学者は「左辺に置けるかどうか」で覚えると迷いが少なくなります。

この考え方を使うときのポイント

左辺値は必ず代入の左側に現れること右辺値は代入の右側に現れることが多い、この基本を覚えれば多くの式の挙動が理解しやすくなります。プログラミング言語によっては「左辺値参照」や「右辺値参照」など、さらなる概念が登場しますが、初心者はまず lvalue と rvalue の区別を身につけるのが近道です。

なぜ lvalue が重要なのか

変数名メモリ上の場所 を表す lvalue は、プログラムの状態を操作する際の基盤になります。代入や参照、ポインタの操作、そして関数の引数渡しにも深く関係してきます。lvalue を正しく理解しておくと、デバッグが楽になり、コードの意図も明確になります。

よくある誤解と注意点

初学者が犯しやすい誤解のひとつは、すべての式が「左辺にも右辺にも現れ得る」わけではないという点です。例えば、*ptrポインタ ptr が指す場所を表す lvalue です。ptr 自体が変数名であれば左辺値として使えます。逆に、数値リテラルのような「5」や「10」は rvalue で、左辺には置けません。

演習問題のヒント

次のような式を考えてみましょう。int a = 3;int b = 4;a = b + 1; このときどの値が lvalue で、どの値が rvalue でしょうか。慣れるまで練習するのがコツです。

まとめ

本記事の要点は次のとおりです。lvalue はメモリ上の場所を指す値で、代入の左辺として使える点が特徴です。rvalue は値そのものを指すもので、通常は代入の右辺に現れます。初学者は「左辺に置けるかどうか」という観点で区別すると理解が進みやすいでしょう。


lvalueの同意語

左辺値
lvalueの日本語訳として一般的に使われる表現。代入の左側に置ける値を指し、オブジェクトの実体を参照できる値のこと。
左値
lvalueの別表現。左辺に置ける値を指す用語で、特にC/C++の解説で頻繁に使われます。
一般化左辺値
glvalueの日本語訳。オブジェクトを参照可能な値の総称を指し、アドレスを取れる値を含みます。
GLvalue
一般化左辺値を英語で表した略称。C++などの専門文献で用いられる概念名。
Left value
lvalueの英語表現の一つ。左辺に位置する値を指す説明用語として使われます。
Left-hand value
左辺値の英語表現として、left-hand valueと呼ばれることがあります。

lvalueの対義語・反対語

右値(右辺値)
lvalueの対義語。値そのものを表す値のカテゴリで、変数の格納場所を指さず、実体の生成を伴うことが多い。例: 42 や 3.14、a + b の結果など。
純右値(prvalue)
C++11以降の値の分類の一つ。lvalueの対になるカテゴリの一つで、直接的に値を表す。変数を参照先として持たない、純粋な値として扱われることが多い。
拡張値(xvalue)
C++11以降の値の分類の一つ。寿命が間もなく終わる右値の一種で、ムーブ操作の対象として扱われることが多い。
一般化左値(glvalue)
左値と右値を含む、値の総称的カテゴリ。lvalueはglvalueの一部であり、lvalueとxvalueの両方を含む大カテゴリ。

lvalueの共起語

左値
オブジェクトの記憶場所を指す値のカテゴリ。代入の左側に来る対象となり、アドレスを取得できる。
右値
その場で生成される値や式の評価結果として現れる値。通常は代入先にはならないが、ムーブの対象になることもある。
lvalue参照
左値を参照する型。C++ では int& のように左辺値を束縛する参照。
rvalue参照
右値を参照する型。C++11 以降でムーブ操作に使われる int&& のような参照。
glvalue
Generalized Lvalue。左値と移動可能な右値を含む、広い意味の値のカテゴリ。
prvalue
Pure Rvalue。値そのものを表すカテゴリ。式の結果として現れる値。
xvalue
Expiring Value。ムーブ可能な右値で、資源の所有権を移動させる対象。
値カテゴリ
値の種類を分類した概念。lvalue、rvalue、glvalue、prvalue、xvalue など。
lvalue-to-rvalue変換
左値を評価して実際の値を取り出す変換。式の評価で値を得るときに発生する。
可変左値
書き換え可能な左値。代入や変更の対象になる。
const左値
const で修飾された左値。変更不可。
アドレス演算子
& 演算子。左辺値のアドレスを取得してポインタを得る。
オブジェクト
左値の対象となる実体。データの実体そのもの。
変数
値を格納する名前付きオブジェクトの代表例
メモリ位置
オブジェクトが格納されている実際の場所を指す概念。
代入演算子
左辺値に右辺値の値を割り当てる演算子(=など)。
ムーブセマンティクス
資源をコピーせずに移動させる仕組み。xvalueとrvalue参照の組み合わせで実現。
一時値
生成後すぐに破棄される値。多くは prvalue として扱われる。
参照
別名として別の値を指す仕組み。lvalue参照・rvalue参照の基礎。
評価順序と副作用
式の評価順序が lvalue / rvalue の扱いに影響を及ぼすことがある。
C言語の左辺値
C 言語における左辺値の概念。C++ とは扱いが異なる点に注意。

lvalueの関連用語

lvalue
メモリ上の場所を指す値で、アドレスを取れる。名前付きのオブジェクトを参照することが多く、代入の左辺として使われやすい。
rvalue
一時的な値で、特定の場所を指すオブジェクトではない。右辺として使われることが多い。
glvalue
オブジェクトや関数の位置を参照する値の分類。lvalueとxvalueを含み、実体の位置を指し示す性質がある。
prvalue
値そのものを表す式。実体を持つ新しいオブジェクトの初期値として使われ、直接的な場所を指定しない。
xvalue
寿命が終盤に近づくオブジェクトを指すglvalue。通常はムーブ操作の対象となる。
value category
式が表す値の「カテゴリ」を示す概念。現在はglvalueとprvalueという二大分類で、glvalueはさらにlvalueとxvalueを含む。
lvalue reference
型 T& の参照。lvalue に結びつく参照で、元のオブジェクトを直接操作できる。
rvalue reference
型 T&& の参照。rvalue に結びつく参照。ムーブ操作を可能にする。
const lvalue reference
型 const T& の参照。変更不能な参照で、lvalueにもrvalueにも結びつけ可能。
temporary
式の評価中に一時的に生成されるオブジェクト。多くはprvalueの結果として生まれ、文の終わりに破棄される。
move semantics
ムーブセマンティクス。リソースをコピーせずに“移動”させ、効率的なオブジェクトの再利用を可能にする。
address-of operator
アドレス演算子 & を使ってオブジェクトのメモリアドレスを取得する。
dereference
ポインタが指す先のオブジェクトにアクセスする演算子 *。
lifetime
オブジェクトが存在し、使用可能な期間。生成時と破棄時に管理される。

lvalueのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
14237viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2377viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1054viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
936viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
900viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
882viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
783viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
778viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
768viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
743viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
685viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
648viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
545viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
538viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
537viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
531viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
497viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
471viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
434viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
425viws

新着記事

インターネット・コンピュータの関連記事