개발공부/CS

Call by Reference

카슈밀 2025. 2. 16. 00:24
반응형

## Call by Reference (참조 호출)

**Call by Reference (참조 호출)**는 함수나 메서드를 호출할 때 인자로 변수의 **주소**를 전달하는 방식을 말합니다. 

### Call by Value (값 호출) 와의 차이점

* **Call by Value (값 호출)**: 변수의 **값**을 복사하여 함수에 전달합니다. 함수 내에서 인자의 값이 변경되어도 원래 변수에는 영향을 주지 않습니다.
* **Call by Reference (참조 호출)**: 변수의 **주소**를 전달하므로 함수 내에서 인자의 값을 변경하면 원래 변수의 값도 함께 변경됩니다.

### 장점

* 함수 내에서 원래 변수의 값을 직접 변경할 수 있습니다.
* 큰 데이터를 복사하지 않고 주소만 전달하므로 메모리 효율성이 좋습니다.

### 단점

* 함수 내에서 의도치 않게 원래 변수의 값을 변경할 수 있으므로 주의해야 합니다.

### Call by Reference를 지원하는 언어

* C++
* Python (일부 경우)

### Call by Reference를 흉내내는 방법 (C)

C 언어는 Call by Reference를 직접 지원하지 않지만, **포인터**를 사용하여 Call by Reference와 유사하게 동작하도록 만들 수 있습니다.

### 참고

* Call by Value와 Call by Reference의 차이점을 이해하는 것이 중요합니다.
* 각 프로그래밍 언어에서 Call by Reference가 어떻게 동작하는지 확인해야 합니다.

728x90

'개발공부 > CS' 카테고리의 다른 글

프레임워크와 라이브러리의 차이점  (0) 2025.02.16
파라미터(Parameter)와 아규먼트(Argument)의 차이점  (0) 2025.02.16
Call by Value란?  (0) 2025.02.16
Git과 GitHub 차이점  (0) 2025.02.16
추상화란?  (0) 2025.02.16