Lvalue가 고 Rvalue

모든 C++ 식 lvalue 또는 rvalue 중 하나입니다.Lvalue 단일 식을 넘어 지속 되는 개체를 참조 합니다.이름이 있는 객체는 lvalue를 생각할 수 있습니다.모든 변수를 수정할 수 없는 포함 하 여 (const) 변수를 lvalue가 있습니다.Rvalue이 사용 하 여 식을 넘어 지속 되지 않습니다 임시 값입니다.Lvalue가 rvalue 사이의 차이 더 잘 이해 하려면 다음 예제를 고려 하십시오.

// lvalues_and_rvalues1.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main()
{
   int x = 3 + 4;
   cout << x << endl;
}

이 예제에서 x lvalue 정의 식을 넘어 지속 되기 때문입니다.식 3 + 4 rvalue 정의 식을 넘어 지속 되지 않습니다 임시 값으로 계산 되는 때문입니다.

다음 예제에서는 rvalue를 lvalue가 몇 가지 올바른 및 잘못 된 용도 보여 줍니다.

// lvalues_and_rvalues2.cpp
int main()
{
   int i, j, *p;

   // Correct usage: the variable i is an lvalue.
   i = 7;

   // Incorrect usage: The left operand must be an lvalue (C2106).
   7 = i; // C2106
   j * 4 = 7; // C2106

   // Correct usage: the dereferenced pointer is an lvalue.
   *p = i; 

   const int ci = 7;
   // Incorrect usage: the variable is a non-modifiable lvalue (C3892).
   ci = 9; // C3892

   // Correct usage: the conditional operator returns an lvalue.
   ((i < 3) ? i : j) = 7;
}

[!참고]

연산자를 오버 로드 되는 경우이 항목의 예제에서는 올바른 및 잘못 된 사용을 보여 줍니다.연산자를 오버 로드 하면 식은 같은 수 있습니다 j * 4 lvalue.

조항 lvalue 및 rvalue 에 대 한 개체 참조를 참조할 때 자주 사용 됩니다.참조에 대 한 자세한 내용은 Lvalue 참조 선언 자: &Rvalue 참조 선언 자: & &.

참고 항목

참조

기본 개념

Lvalue 참조 선언 자: &

Rvalue 참조 선언 자: & &