Machineboy空
값에 의한 호출 (call by value) vs 참조에 의한 호출(call by reference) 본문
함수에 값을 전달 할 때 두 가지 방법
Call by Value(값에 의한 호출) | Call by Reference(참조에 의한 호출) |
매개변수로 전달되는 변수를 모두 함수 내부에서 복사해서 함수 실행 함수 내부에서 전체 복사가 일어나고 실제 변수와는 다른 주소에 할당 실제 변수의 주소값 != 매개변수로 전달된 변수의 주소값 |
변수의 주소를 매개변수로 함수에 전달하는 함수 |
원본값 변경 X | 원본값 변경 O |
primitive한 타입 등에 적합 byte, short,int,long,float,double,boolean,char |
reference타입 : 인스턴스화 가능한 모든 클래스의 배열에 적합 String, struct,class,int[], string[] |
복사가 일어나지만 간단하기 떄문에 복사에 대한 코스트가 크지 않다. | 전체 크기가 커서 복사하는데 드는 코스트가 더 크다. ex.너무 많은 배열을 복사할 경우 시간초과가 나기도 |
*코스트: 해당 복사에 드는 CPU 시간, 메모리 등
'Computer > 자료구조' 카테고리의 다른 글
Object-Oriented Data Structures # WEEK03 : Constructors - default, copy & copy assignment operator (0) | 2024.02.02 |
---|---|
Object-Oriented Data Structures # WEEK02 : Heap Memory (0) | 2024.02.02 |
Object-Oriented Data Structures # WEEK02 : Stack memory & Pointers (0) | 2024.01.31 |
Object-Oriented Data Structures # WEEK01 : C++ variable, Class,Libraries (0) | 2024.01.30 |
C++ 자료구조 종류 및 개요 (0) | 2024.01.15 |