프로그래밍 공부
작성일
2023. 10. 12. 15:57
작성자
WDmil
728x90

함수에 의해 전달된 인수는 해당 함수에 복사된 값으로 처리된다.

 

따라서 함수 내에서 인수를 설정하거나 바꾸어도 호출된 매개변수에는 영향을 끼치지 않는다.

 

void modifyValue(int x) {
    x = x * 2;
}

int main() {
    int num = 5;
    modifyValue(num);
    // num은 여전히 5입니다.
    return 0;
}

위와같이 처리된다면, x의 값에는 변화가 이루어지지 않는다.

 


장점

  • 예측가능한 변수 (Predictable Behavior)
    • 함수에서 인수를 수정하더라도 호출자에 영향을 미치지 않기에 예측이 가능.
  • 데이터 보호
    • 호출자의 데이터를 보호하여 실수로 값이 변경되는걸 방지함.

단점

  • 메모리 사용
    • 크기가 큰 데이터 구조를 전달할 경우, 메모리 사용량이 증가할 수 있다.
  • 성능 저하
    • 메모리 사용과 마찬가지로. 복사대입이기 때문에, 복사하는 과정에서 성능저하를 초래할 수 있다.
728x90

'컴퓨터 용어 정리' 카테고리의 다른 글

HeightMap  (0) 2023.10.19
참조에 의한 호출 ( Call by Reference )  (0) 2023.10.12
DirectX 3D 행렬연산  (0) 2023.10.12
단위행렬(Identity matrix)  (0) 2023.10.12
가상함수 ( Virtual Function )  (0) 2023.10.10