참조에 의한 전달 - 실인수와 가인수가 같은 곳을 참조하는 형태로 인수를 함수에 전달
실제로는 주소를 가지고 있는 주소 값을 인자로 주는..값에 의한 전달밖에는 없지만..머..
int num;
int& newnum = num;
newnum = 13;
이러고 출력하면 둘다 13이 값이됨...걍 동일 엑세스..포인터랑 좀 다른듯
int num;
int* newnum = # //이때의 & 는 주소값...별명은 아니고
*newnum = 400; //포인터의 경우 *를 붙여서 접근해야되서 귀찮음
void changeValue(double &a) //인수를 참조로 선언
{
a = 200; //address 전달일 때처럼 *를 붙여서 엑세스할 필요가 없다.
}
int main()
{
double num1 = 100;
cout<<"num1 = "<<num1<<endl;
changeValue(num1); //값을 전달할 변수를 적는다
cout<<"num1 = "<<num1<<endl;
return 0;
}
결과
num1 = 100
num1 = 200
참고로 주소에 의한 전달로 호출할시
Person shain1 = {"shiori", 18};
printfPersonPtr(&shain1);
void printPersonPtr(const Person *psn)
{
}
선언
call by refference(int *a); //참조
call by address(int &a); //주소
call by value(int a); //값
호출시
call by refference(a); //참조
call by address(&a); //주소
call by value(a); //값
두개가 호출하는 방법이 같기 때문에 인수의 값이 변경되는건지 알 수가 없다
'컴퓨터 과학 & 영상처리 관련 > C / C++' 카테고리의 다른 글
복사생성자 (0) | 2012.07.10 |
---|---|
new/delete 연산자의 응용 (0) | 2012.07.10 |
인라인 함수 (0) | 2012.07.10 |
cin, cout의 경우 신기한것들이 있었음 (0) | 2012.07.10 |
인수(argument 아규먼트)와 매개변수(parameter 파라메터) (0) | 2012.07.04 |