작은 걸음 V — 나만의 자료형 만들기
복사 대신 원본에 이름 붙이기
복사 대신 원본에 이름 붙이기
이번에 배울 것
참조(reference)는 기존 대상에 붙이는 다른 이름입니다. int& 매개변수는 전달한 정수의 원본을 가리킵니다.
실행해 보기
예제 · example1.cpp
void add_one(int x)
{
x = x + 1;
print("Inside: ", x);
}
void small_main()
{
int n = 10;
add_one(n);
print("Outside: ", n);
}
먼저 예제를 실행하면 Inside: 11, Outside: 10입니다. add_one(int x)를 add_one(int& x)로 바꾸어 다시 실행하세요. 이번에는 둘 다 11입니다.
처음에는 x가 복사본이었고, &를 붙인 뒤에는 n의 다른 이름이기 때문입니다. 원본을 바꾸겠다는 의도가 있을 때 사용합니다.
Exercise — Swap 만들기
두 int의 원래 값을 서로 바꾸는 swap(int& a, int& b) 함수를 만드세요.
연습 문제 코드 · exercise1_starter.cpp
void swap(int& a, int& b)
{
// swap the original values.
}
void small_main()
{
int x = 3;
int y = 7;
swap(x, y);
print(x, ", ", y);
}
Hint
temp에 a를 잠깐 저장한 뒤 a=b, b=temp 순서로 바꾸세요.
풀이 보기
void swap(int& a, int& b)
{
int temp = a;
a = b;
b = temp;
}
void small_main()
{
int x = 3;
int y = 7;
swap(x, y);
print(x, ", ", y);
}