공부/C++

L-Value와 R-Vaule란?

셩잇님 2023. 6. 11. 21:05
반응형

 

 

1. L-Value와 R-Value

C++에서 L-Value는 객체를 지정하는 표현식이며 할당 연산자의 왼쪽에 사용할 수 있습니다. R-Value는 객체를 지정하지 않는 표현식으로, 할당 연산자의 왼쪽에 사용할 수 없습니다.

 

L-Value:

L-Value은 컴퓨터 메모리에서 특정 주소를 가진 메모리 위치 또는 객체를 나타내는 표현식을 말합니다.  값이 변수 또는 메모리 위치에 할당되는 할당 표현식의 왼쪽을 나타냅니다.

L-Value은 변수, 객체 또는 역참조된 포인터일 수 있습니다.

L-Value은 지정된 메모리 위치에 저장된 값을 읽거나 쓰는 데 사용할 수 있습니다.

 

R-Value:
R-Value은 임시 값 또는 특정 메모리 위치가 없는 값을 나타내는 표현식을 말합니다. 이는 할당 표현식의 오른쪽을 의미하며, 여기서 값은 L-값에 할당하는 데 사용됩니다.
R-Value은 리터럴, 상수, 산술 표현식 또는 값을 반환하는 함수 호출일 수 있습니다.
R-Value은 값을 읽는 데만 사용할 수 있으며 값을 수정하거나 할당하는 데는 사용할 수 없습니다.

 

2. L-Value와 R-Value 예제

L-Value과 R-Value의 차이점에 대한 예지입니다.

 

 

int x = 10;  // 'x' is an l-value
int y = x;   // 'x' is an r-value (used to assign to 'y')

int sum = x + y;  // 'x' and 'y' are both r-values (used in an expression)

int* ptr = &x;    // '&x' is an l-value (address of 'x')

 

위의 예에서 x는 메모리 위치를 나타내며 할당하거나 읽을 수 있기 때문에 l-값입니다. 반면에 10, x + y, &x는 모두 임시 값을 나타내거나 특정 메모리 위치가 없으므로 r값입니다.

 

3. 결론
L-Value과 R-Value은 C++의 기본 개념이며, 정확하고 효율적인 코드를 작성하려면 이 둘의 차이점을 이해하는 것이 필수적입니다. 할당, 변수 선언, 함수 호출 평가와 같은 개념을 다룰 때는 L-Value과 R-Value의 차이를 이해하는 것이 중요합니다. 특정 표현식을 언제 어디서 사용할 수 있는지, 어떤 연산이 유효한지에 대한 규칙을 이해하는 데 도움이 됩니다.

 

 

반응형