강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

wer070947님의 프로필 이미지
wer070947

작성한 질문수

홍정모의 따라하며 배우는 C++

1.3 변수와의 첫 만남

강의 마지막 문제 질문드립니다.

작성

·

463

2

항상 유익한 강의 감사드립니다.

 

제가 생각한 l-value 에 대한 정의는 '메모리 공간에 대한 주소를 갖고 있는 것' 이고,

r-vlaue 는 '임시로 복사가 되는 것' 이라고 생각합니다.

 

(x + y)가 l-value 냐 r-vlaue 냐에 대해 제가 직접 컴파일러를 실행시켜 본 결과, 

cout << &(x + y) << endl; 오류가 발생했습니다.

error: lvalue required as unary ‘&’ operand

즉, 주소값을 갖고 있지 않다고 생각합니다.

그래서, (x + y)는 r-value 라고 생각합니다.

 

새로이 변수 r을 대입해봤을 떄,

int r = x + y;

cout << &r << endl;

r의 주소값이 나온 것으로 보아 

r이 l-value가 되므로, x + y 는 r- value 가 된다고 생각합니다.

 

제가 생각한 부분이 미흡하다면 지적 부탁드립니다.

 

답변 1

0

안녕하세요 :)

마지막 예제 속 x+y는 rvalue가 맞습니다.

 

wer070947님의 프로필 이미지
wer070947
질문자

감사합니다.

wer070947님의 프로필 이미지
wer070947

작성한 질문수

질문하기