함수에서는 call by value 혹은 call by reference를 이용하여 값을 입출력한다. call by value는 함수 호출 시 넘기는 인자의 값이 매개변수에 복사되어 전달되기 때문에, 함수 내에서 값을 변경한다고 할 지라도 원본값은 변경되지 않는다. 원본 데이터를 터치하지 않기 때문에, 원본 데이터를 지키는 데에 있어서 안전하다. 그러나 값을 복사하여 사용하는 형태이기 때문에 메모리 사용량이 증가한다는 단점을 지닌다.
call by reference는 함수 호출 시 인수로 전달되는 변수의 참조값(주소)을 함수 내부로 전달하는 방식으로, 인자로 전달되는 값이 변수의 주소이다. 따라서 변수 값을 변경하게 된다면 주소에 저장된 값도 변경된다. 이는 직접 참조에 유리하다는 장점을 가지지만, 원래 데이터 값이 변경된다는 단점을 갖는다(원래 데이터 유지를 해야 할 경우 적합하지 않음)
반응형
'Computer Science' 카테고리의 다른 글
[c] 문자열을 입력받아, 거꾸로 출력하는 프로그램 구현하기 (0) | 2023.11.29 |
---|---|
[정보보안] 블록암호 운영모드(ECB, CBC, CFB, OFB, CTR) (0) | 2023.11.25 |
[선형대수] python으로 벡터의 내적과 외적 계산하기 (0) | 2023.11.09 |
[c언어 기본] 함수에 관하여(함수의 여러 자료형, 함수에서의 scope의 의미, static 변수에 대해 (0) | 2023.11.09 |
[자료구조] 자료구조의 분류(선형구조, 비선형구조, 파일구조, 단순구조) (0) | 2023.11.04 |