주소를 넘겨준다.
안정성은 낮지만 빠르다.
실수: call by reference로 해야하는데 call by value로 했다. 앞으로 이런 일이 없도록 유념하자.
call by reference는 &를 써야 한다.
#include<iostream>
using namespace std;
int a = 0;
// call by reference는 &를 써야 하는 것에 유의하자.
int callByReference(int ¶meter)
{
parameter= 2;
return parameter;
}
int callByValue(int parameter)
{
parameter= 1;
return parameter;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout<< a << endl; // 0이 출력된다.
cout<< callByValue(a) << endl; // 1이 출력된다.
cout<< a << endl; // 0이 출력됨: callByValue라서 전역변수 값이 안 바뀜
cout<< callByReference(a) << endl; // 2가 출력된다.
cout<< a << endl; // 2가 출력됨: callByReference라서 전역변수 값이 바뀌었다!
}
출력 결과