작성
·
62
1
"Lvalue가 refer된다는 것은 또 다른 이름처럼 사용된다라는 것이다"라는 것이 무슨 말인가요? 이미 선언된 변수에 어떤걸 대입하는건데 그냥 idenifier로써 작동하는 것이 아닌가요? 아 너무 헷갈리네요ㅠㅠ
답변 1
1
안녕하세요? 질문&답변 도우미 Soobak 입니다.
저도 처음 공부할 때 이해에 힘들어했던 부분이네요!
충분히 헷갈리실 수 있는 내용이고, 점점 용어들에 익숙해지시면서 자연스럽게 이해가 되실거에요!
우선, Lvalue
는 메모리의 위치를 나타내는 표현식입니다. (해당 강의의 11:30 부분 경 참고)
여기서, 중요한 점은 Lvalue
가 단순히 값을 저장하는 것이 아니라, 메모리의 위치를 나타낸다는 점, refer
하고 있다는 점입니다.
"또 다른 이름처럼 사용된다" 는 것을 이 부분에 초점을 맞추어 접근해보시면 이해에 도움이 되실 것 같습니다.
(해당 강의 13:20 부분의 예제와 교수님 설명을 참고해보시면 더 좋을 것 같습니다.)
또한, int a = 10;
int b = a;
와 같은 코드에서,b = a
는, a
가 가리키는 메모리 위치(refer)의 값을 b
가 가리키는 메모리 위치(refer)에 복사하는 것입니다.
이 때, a
와 b
는 각각 독립적인 메모리 위치를 가리키는 Lvalue
입니다.
따라서, 식별자(Identifier)
로써 작동한다고 이해하시기 보다는, "메모리 위치를 참조한다" 로 이해하시는 것이 더 정확합니다.
핵심은, Lvalue
는 단순히 변수의 이름이 아니라, 메모리 위치를 나타내는 표현식 이라는 점입니다.
예를 들어,int a = 5;
int* ptr = &a;
의 경우에서, a
와 *ptr
은 같은 메모리 위치를 가리키는 서로 다른 방법(각각 또 다른 이름)이며, 둘 다 Lvalue
로 같은 메모리 위치를 refer
하고 있습니다.