call by value , call by address, call by reference

보물창고·2021년 11월 2일
0

call by value

: 인자가 원본자체를 복사받아서 사용된다.
-> 인자가 배열 형식 10개로 되어 있다고 생각해보자.
이렇게 되면 int형 10번의 복사가 진행된다. 굉장히 비효율적이다.

call by address

: 인자가 포인터 형식이다. 원본의 주소값을 복사
-> 인자가 배열이더라도, 포인터의 주소만 받아서 사용하므로 call by value보다는 효율적이다.

  • 문제점
    : 포인터이기 때문에 증감연산이 가능하므로, 전혀 관계없는 메모리에 접근한다는 문제가 생긴다.

call by ref

: call by address와 동작하는 방법은 동일하다.
다른 점은 보다 안정적이다 라는 점이다.
-> 반드시 포인터를 사용할때를 제외하고는 ref를 사용하자.

(+) 추가적으로 const를 인자에 덧붙여 안전한 코드를 작성가능하다.
원본 값 변경 방지!

  • call by ref는 lValue ref와 RValue ref가 있다.
profile
🔥🔥🔥

0개의 댓글