- call by reference 란?
참조에 의한 호출을 말한다
call by value - 값을 보낸다
call by reference - 주소를 보낸다 보낸 주소는 포인터변수로 받는다
그 포인터변수와 같은 주소를 가진 변수는 동일하게 적용되어 원격적용도 가능하게 된다
- 주소와 값을 같이 보낼 때
이 주소에 값을 담아주세요 라는 뜻이 된다
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문을 돌리면서 조건에 따른 해당 좌표를 알고싶을 때 많이 쓴다
문제) 배열의 최대값을 구할 때
'C++' 카테고리의 다른 글
무한 재귀 호출(1) - 재귀호출 정의, 무한재귀호출 막는 방법 2가지 (0) | 2022.07.03 |
---|---|
While문 (무한 루프) 기초 (0) | 2022.06.14 |
문자열(string) 기초 (0) | 2022.06.12 |
배열의 최대값(max), 최소값(min) 구하기 , flag (0) | 2022.06.12 |
포인터(Pointer) 기초 (0) | 2022.06.12 |