
Call by Value와 Call by Reference는 함수가 인자를 전달할 때 사용되는 방식이다.
값에 의한 호출
함수를 호출할 때, 전달하려는 변수의 값 자체를 복사 하여 함수의 매개변수로 전달하는 방식이다.
함수는 전달받은 변수의 복사본을 사용하고, 복사본은 함수가 종료되면 스택 메모리에서 제거된다.
복사된 값을 사용하기때문에 값이 변경되더라도 원본 데이터는 영향을 받지않는다.
간단한 예시로 매개변수로 받은 값을 변경하고 출력하는 함수이다.
값을 복사하여 사용하기 때문에 원본 데이터가 변경되지않아
5 10 을 출력한다.
참조에 의한 호출
함수를 호출할 때, 변수의 주소(참조값)를 전달하여 함수 내부에서 원본 데이터를 참조하여 사용하는 방식이다.
함수는 전달받은 변수를 참조를 통해 사용하고, 함수 내에서 값을 변경하면 원본 데이터도 변경된다.
데이터를 복사하지않고 사용하기때문에 메모리를 효율적으로 사용한다.
간단한 예시로 매개변수로 받은 값을 변경하고 출력하는 함수이다.
변수의 주소값을 참조하여 사용하기 때문에 원본 데이터가 변경되어
3 3 을 출력한다.