참조자는 변수의 별명이라고 생각하면 된다.
변수는 할당한 메모리 공간에 대한 이름이다. 그 공간에 이름을 하나 더 붙여주는 것이 참조자이다.
int val = 10;
int &ref = val; //참조자는 선언과 동시에 변수로 초기화 되어야 함.
위와 같이 선언하면 해당 메모리에 10이라는 값이 저장되어 있고 그 공간의 이름은 val, ref 이렇게 두 개가 된다.
따라서,
cout << val << endl;
cout << ref << endl;
위와 같이 출력했을 때 둘 다 10 출력 된다.
#include <iostream> using namespace std; void Swap_Ref(int &a, int &b) //매개변수는 함수가 호출되어야 초기화가 진행되는 변수들이다. { int temp = a; a=b; b=temp; } int main(void) { int value1 = 100; int value2 = 200; Swap_Ref(value1, value2); cout << value1 << endl; cout << value2 << endl; return 0; } |
응용 : 포인터 변수를 인자로 주었을 때 Swap() 함수
#include <iostream> using namespace std; void Swap(int* &a, int* &b) { int *temp = a; a = b; b = temp; } int main(void) { int a=10, b=20; int *ptr1=&a; int *ptr2=&b; cout << ptr1 << " [before] " << ptr2 << endl; cout << *ptr1 << " [before] " << *ptr2 << endl; Swap(ptr1, ptr2); cout << ptr1 << " [after] " << ptr2 << endl; cout << *ptr1 << " [after] " << *ptr2 << endl; return 0; } |
'프로그래밍 > C++' 카테고리의 다른 글
참조자와 함수의 호출관계 (0) | 2013.07.24 |
---|---|
new & delete 기본 사용법 (0) | 2013.07.23 |
포인터와 참조자 (0) | 2013.07.23 |
간단한 은행계좌 관리 프로그램 (0) | 2013.07.21 |
범위지정 연산자 (Scope Resolution Operator) (0) | 2013.07.20 |
이름공간(namespace) 기본형 (0) | 2013.07.20 |
입력 받은 수의 구구단 출력 (0) | 2013.07.19 |