반응형
1. lvalue 와 rvalue란?
우선 lvalue 와 rvalue에 대해 알아보자
1) lvalue 란?
- left value의 줄임말이다.
- 대입 연산자의 왼편에 올 수 있는 대상을 총칭하는 표현이다.
- 즉 lvalue는 대입이 가능한 대상이어야 한다.
- 대입 연산자의 왼편에 올 수 있는 가장 대표적인 대상은 변수이다.
- 하지만 왼편에 올 수 있는 것으로 변수가 전부는 아니다.
- 따라서 변수는 lvalue이지만 lvalue가 꼭 변수인것은 아니다.
2) rvalue 란?
- right value의 줄임말이다.
- 대입 연산자의 오른편에 올 수 있는 대상을 의미하며, lvalue의 상대적인 표현을 위해서 등장한 표현이다.
2. 연산자는 연산이 끝나고 무엇을 남길까?
연산자는 연산을 하고나면 무엇인가를 반환한다.
보통 대입 연산자는 대입만 하는 줄 안다. 하지만 대입을 하고 대입이 된 값을 반환한다.
1) num1 = num2 = num3;
만약 num3 의 값이 5라면 5의 값을 num2에 대입하고서 5라는 상수 값을 반환한다.
2) num1 = (num2 = num3);
3) num1 = 5;
결국 대입연산자가 반환한 것은 상수이지 lvalue가 아니다.
다음과 같은경우 컴파일러는 에러 메시지를 전달한다.
(num1 = num2) = num3;
왜냐하면 대입연산자의 왼편에는 lvalue이어야하는데 왼편에는 상수가 반환되기 때문이다.
하지만 아직 소개하지 않은 연산자 중에 lvalue를 반환하는 연산자들도 있다 추후 살펴보자.
반응형
'BackEnd > C' 카테고리의 다른 글
함수란 무엇인가? (0) | 2018.12.18 |
---|---|
산술연산 과정에서 발생하는 형 변환의 규칙 (0) | 2018.12.18 |
sizeof 연산자 (0) | 2018.12.18 |
자료형 변환 연산자 (0) | 2018.12.10 |
관계연산자와 논리연산자 (0) | 2018.12.10 |