-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
강의 마지막 문제 질문드립니다.
22.04.21 23:02 작성 조회수 283
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 가 된다고 생각합니다.
제가 생각한 부분이 미흡하다면 지적 부탁드립니다.
답변을 작성해보세요.
0
답변 1