C++

[C++]Rvalue/Lvalue

programmer-faust 2025. 7. 22. 21:08
  • 순서
    • Rvalue란?
    • Lvalue란?
    • Rvalue와 Lvalue의 차이
  • Rvalue란?
    1. 기존 C에서 rvalue는 right value 즉 대입연산자를 기준으로 오른쪽 값
    2. 메모리 주소가 없는 일시적으로 계산된 결과 또는 임시 값임 => 지금만 잠깐 사용하는 값
      • 예를 들어 int a = 5; 에서 rvalue는 5이다.
  • Lvalue란?
    1. 기존 C에서 rvalue는 left value 즉 대입연산자를 기준으로 왼쪽 값
    2. 객체를 참조하는 표현식으로 특정 메모리의 위치를 가지고 있고 주소도 가질 수 있는 존재하는 값
      • 예를 들어 int a = 5;에서 lvalue는 a이다.
  • Rvalue와 Lvalue의 차이
    1. lvalue와 rvalue를 구분하는 이유
      • 이동생성자 / 이동 대입 연산자
      • 함수 오버로딩 시 구분 가능