함수에서는 call by value 혹은 call by reference를 이용하여 값을 입출력한다. call by value는 함수 호출 시 넘기는 인자의 값이 매개변수에 복사되어 전달되기 때문에, 함수 내에서 값을 변경한다고 할 지라도 원본값은 변경되지 않는다. 원본 데이터를 터치하지 않기 때문에, 원본 데이터를 지키는 데에 있어서 안전하다. 그러나 값을 복사하여 사용하는 형태이기 때문에 메모리 사용량이 증가한다는 단점을 지닌다.
call by reference는 함수 호출 시 인수로 전달되는 변수의 참조값(주소)을 함수 내부로 전달하는 방식으로, 인자로 전달되는 값이 변수의 주소이다. 따라서 변수 값을 변경하게 된다면 주소에 저장된 값도 변경된다. 이는 직접 참조에 유리하다는 장점을 가지지만, 원래 데이터 값이 변경된다는 단점을 갖는다(원래 데이터 유지를 해야 할 경우 적합하지 않음)
반응형
'IT > Computer Science' 카테고리의 다른 글
[정보보안] 블록암호 운영모드(ECB, CBC, CFB, OFB, CTR) (0) | 2023.11.25 |
---|---|
[sql] Rollup, Cube, Grouping sets(집계함수) (0) | 2023.11.23 |
[sql] 데이터베이스의 view 기능 (0) | 2023.11.11 |
[sql] join에 대하여(Natural join, inner join, Outer join, Cross join) (0) | 2023.11.10 |
[선형대수] python으로 벡터의 내적과 외적 계산하기 (0) | 2023.11.09 |