본문 바로가기

Programming/C++

Lvalue와 Rvalue


오늘 한거

1. Reference
2. C언어에서의 Lvalue와 Rvalue
3. C++에서의 Lvalue와 Rvalue
4. Rvalue Reference
5. 클래스를 생성할 때 기본으로 생성되는 것들 (6가지)

1. Reference

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
using namespace std;
 
void swap(int&a, int&b) {
    int tmp = a;
    a = b;
    b = tmp;
}
 
int main(void) {
    int a = 10, b = 20;
    int& rA = a;
 
    cout << a << endl;
    cout << rA << endl;
    cout << &<< endl;
    cout << &rA << endl;
 
    swap(a, b);
 
    cout << "a : " << a << ", b : " << b << endl;
 
    return 0;
}
cs

이렇당. rA는 a와 같은 값을 가지고 있다. 그리고 주소를 출력해 보면 a와 rA의 주소가 같다. 닉네임 같은거다. 그래서 swap할 때 많이 쓰인당


2. C언어에서의 Lvalue와 Rvalue

C언어에서의 Lvalue와 Rvalue를 보자. int a = 10; 변수에 값을 대입하는 코드이다.
Lvalue는 위 구문에서 왼쪽과 오른쪽 모두 올 수 있는 값이다. 그리고 Rvalue는 오른쪽에만 올 수 있는 값이다. 10 = a; 이런거는 안된당ㅎㅎ 대체적으로 Lvalue는 변수, Rvalue는 상수를 의미한다.


3. C++에서의 Lvalue와 Rvalue

C++에서는 Lvalue Rvalue 구분을 해당 구문이 지난 후에 그 값이 남아있는가로 구분한다. 

'Programming > C++' 카테고리의 다른 글

C++에서 문자열 EOF까지 입력받고 출력하기  (0) 2018.04.24
c++ 템플릿 공부  (0) 2017.08.29