오늘 한거
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 << &a << 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 |