본문 바로가기
C++/C++ 문법

C++ Lvalue와 RValue

by Sein_ 2025. 10. 13.
728x90

[Do it C++ 완전정복_ 62p]

l-value와 r-value

  • l-value
    • 메모리 상의 위치를 가진 값을 의미한다.
    • 메모리 주소를 가진 값을 의미하며, 변수나 배열 요소, 참조 등이 해당된다.
    • 식 외에서도 유효하며, 메모리 위치를 참조할 수 있다.
int x = 666;   // x는 l-value, 666은 r-value
int *p = &x;   // l-value x의 주소를 p에 저장
x = 100;       // 좌변에 올 수 있음
  • r-value
    • 임시 값, 메모리 주소가 없는 값을 의미한다.
    • 주로 대입 연산자의 우변에 나타나며, 값 또는 상수, 연산 결과가 해당된다.
    • 식 외에서는 유효하지 않으며, 좌변에는 올 수 없다.
int y;
y = 666;        // 666은 r-value, y는 l-value
y = x + 5;      // x + 5는 r-value