CS/C++

L value 와 R value

혀니리리 2023. 12. 14. 12:05
728x90

[C++] l-value, r-value : 네이버 블로그 (naver.com)

 

[C++] l-value, r-value

C언어에는 lvalue(left value), rvalue(right value) 라는 개념이 존재한다. 이 왼쪽 값, 오른쪽 값이란 ...

blog.naver.com

lvalue

 

표현식 이후에도 사라지지 않는 값. 이름을 지니는 변수.

 

rvalue

 

표현식 이후에는 사라지는 값. 임시 변수.

 

 x+y 따위는 실제 변수가 아니라 임시 변수를 생성하여 (레지스터인지 메모리인지)에 저장, 사용한다. 이 값은 일반 변수와 마찬가지로 int 등의 타입을 가지고 있지만 계산이 끝나면 사라지는데 이것이 rvalue 이다.

그리고 명시적으로 선언하여 '이름'을 가지고, 계속 접근할 수 있는 변수가 바로 lvalue 이다.

lvalue에 약간의 연산을 가한 것, 포인터(주소값)등은 따로 저장되어 있는 변수가 아니라 '연산된 결과' 이기에 전부 rvalue 라고 볼 수 있겠다.

[출처] [C++] l-value, r-value|작성자 RedWings

728x90

'CS > C++' 카테고리의 다른 글

name mangling  (0) 2023.12.14
이동 의미론 ( move semantics)  (0) 2023.12.14
얕은복사 / 깊은복사  (0) 2023.12.14
c++ typedef vs using 키워드 차이점  (0) 2023.12.14
C++ template 장단점  (0) 2023.12.14