본문 바로가기
프로그래밍언어

Variable L-value, R-value (변수, 주소, 이름)

by 책 읽는 개발자_테드 2019. 4. 11.
반응형

Address

 변수의 주소는 머신(컴퓨터)의 메모리 주소입니다. 많은 언어에서 동일한 변수가 프로그램에서 다른 시간에 서로 다른 주소와 연관 될 수 있습니다. 예를 들어 서브 프로그램이 호출 될 때 런타임 스택에서 할당 된 로컬 변수가 서브 프로그램에 있는 경우 다른 호출로 인해 해당 변수의 주소가 달라 질 수 있습니다. 이것은 같은 변수가 다른 인스턴스화가 되는 것입니다. 또한 동일한 주소를 가진 여러 변수가 있을 수 있습니다. 하나 이상의 변수 이름을 사용하여 동일한 메모리 위치에 액세스 할 수 있는 경우 변수를 Aliasing 이라고 합니다.

 

변수의 배정(assignment)에서 왼쪽에 변수 이름이 나타날 때, 주소가 필요하기 때문에 변수의 주소를 L-Value 라고합니다.

 

 Value

  변수의 값은 변수와 연관된 메모리 셀 또는 셀의 내용입니다. 물리적 메모리 보다는 추상적인 셀의 측면에서 컴퓨터 메모리를 생각하는 것이 편리합니다. 대부분의 최신 컴퓨터 메모리의 물리적 셀 또는 개별 주소 지정 가능 장치는 바이트 크기이면, 일반적으로 바이트의 길이는 8비트입니다. 이 크기는 대부분의 프로그램 변수에 비해 너무 작습니다. 추상 메모리 셀은 연관된 변수에 필요한 크기를 갖습니다. 예를 들어 floatint-point 값이 특정 언어의 특정 구현에서 네 개의 실제 바이트를 차지할 수 있지만 부동 소수점 값은 단일 추상 메모리 셀을 찾하는 것으로 간주됩니다. 각각의 non-structured 타입의 값은 단일 추상 셀을 차지하는 것으로 간주됩니다. 이후, 메모리 셀이라는 용어는 추상적인 메모리 셀을 의미합니다.

 

 변수의 값은 변수의 이름이 배정문의 오른쪽에 나타날 때 필요하기 때문에 R-Value라고합니다.  R-Vaule 에 액세스하려면 먼저 L-Value 값을 결정해야합니다.

                                                                          

L-Value, R-Value 예시

                               출처:https://www.slideshare.net/oliora/hot-c-rvalue-references-and-move-semantics           

 

 

 출처

CONCEPTS OF PROGRAMMING LANGUAGES 10th EDITION(서적)

https://www.slideshare.net/oliora/hot-c-rvalue-references-and-move-semantics

반응형

댓글