본문 바로가기
C++

call by referecne 기초, 백업변수

by 영카이브 2022. 6. 12.
  • call by reference 란?

참조에 의한 호출을 말한다

call by value - 값을 보낸다

call by reference - 주소를 보낸다  보낸 주소는 포인터변수로 받는다

그 포인터변수와 같은 주소를 가진 변수는 동일하게 적용되어 원격적용도 가능하게 된다

 

즉 *a는 x다

 

 

  • 주소와 값을 같이 보낼 때

이 주소에 값을 담아주세요 라는 뜻이 된다 

ex) ( 1, 2, 3, &sum ) - sum이라는 변수의 주소에 1, 2, 3을 활용한 결과를  담아주세요 

1, 2, 3, 은 int 변수로 받고 &sum은  포인터변수로 받게된다

그리고 이를 활용해서 포인터 변수에 값을 저장하고 그로 인해 변수의 값이 변화할 수 있다 

 

 

 

*주소를 여러개 보내는 것도 가능

그렇다면 값이 여러가지 나올 수 있다 

call by reference는 여러개를 리턴하듯 활용이 가능하다 

 

  • < 배열에 관한 call by reference >

배열을 함수로 보낼때에는 배열이름만 보낸다 

ex)

main 함수에서 

int v[3]을 abc 함수로 보낼때 

abc(v)

 

abc 함수에서는  abc (int v[3]) 으로 받는다  여기서의  v대신 아무거나 써도 무방하나 헷갈리지 않게 같은것 쓰는게 좋다

이렇게 받게 되면 함수안에서도 전역변수를 쓰지않아도 해당배열을 쓸 수있게 된다

대신 조사식에서 배열값을 보고싶다면 v, 3으로 표시 v만으로 표시할시 v[0]값만 볼 수 있다 

-배열도 여러개 보내고 여러개받는것이 가능하다 

 

 

  • 백업변수

임의의 변수를 만들어 해당 조건에 따른 변수의 값을 넣는다

ex) 이중배열의 좌표를 구할 때 쓴다 - for문을 돌리면서 조건에 따른 해당 좌표를 알고싶을 때 많이 쓴다

 

문제) 배열의 최대값을 구할 때