목록reference (4)
삶의 공유
전 포스팅에 이어서 Reference의 활용으로 Const, Return, Rvalue에 대해서 알아보자. Const Reference 아래와 같은 예시가 있다고 생각해보자, #include struct Rect { int left; int top; int right; int bottom; }; void foo(Rect r) { } int main(int argc, const char * argv[]) { // insert code here... Rect rc = {1,1,5,5}; foo(rc); } 여기서 foo 함수에 Rect 타입 변수 rc를 전달하는데 "foo 함수 안에서는 rc의 상태는 변경되면 안된다." 라는 규칙이 적용이 되면 우리는 Call by value로 전달하면 된다. Call by..
오늘은 표준 입출력에 이어서 Reference에 대해 공부해보자. 레퍼런스 (Reference, 참조) 란? 이미 존재하는 변수(메모리)에 대한 추가적인 별칭(alias)를 부여 하는 문법 예시는 다음과 같다. #include int main(int argc, const char * argv[]) { // insert code here... int n = 10; int*p = &n; int&r = n; r = 20; std::cout
#출저 : 열혈 C++프로그래밍(책) Call by reference, Call by Value의 의미를 먼저 살펴보면, Call by value : 값으로 인자를 전달하는 함수의 호출 방식 Call by reference : 주소값을 인자로 전달하는 함수의 호출 방식 Call by value 기반으로 Swap 함수를 구현해보면, void SwapByValue(int num1, int num2) { int temp = num1; num1 = num2; num2 = temp; } int main() { int val1 = 10; int val2 = 20; SwapByValue(val1, val2); cout
#출저 : 열혈 C++프로그래밍(책) 변수는 할당된 공간에 붙여진 이름이다. 그리고 그 이름을 통해서 해당 메모리 공간에 접근이 가능하다. 여기서, 할당된 하나의 공간에 둘 이상의 이름을 부여하는 경우를 참조(Reference)한다 라고 말한다. int num1 = 2010; 이렇게 변수를 선언 하면 메모리 공간 상에서는, 아래 처럼 된다. 여기에서 int &num2 = num1; 를 실행하면 num1이라는 이름이 붙어 있는 메모리 공간에는 num2라는 이름이 하나 더 붙게 된다. *포인터와 헷갈리면 안된다. 포인터 의미와 구분 짓자면, int *ptr = &num1 // 변수 num1의 주소 값을 반환해서 포인터 ptr에 저장해라. int &num2 = num1 // 변수 num1에 대한 참조자 num..