값에 의한 전달 (Passing by Value)
인자를 복사해서 전달한다.
시간복잡도 O(n)이 추가되는 격이니, 값에 의한 전달은 좋은 방법이 아니라는 생각이 든다.
함수 안에서 복사본들 변경해도 함수를 호출한 곳의 원본은 변경되지 않는다.
포인터에 의한 전달 (Passing by Pointer)
함수 안에서 주소를 통해 함수를 호출한 곳의 원본에 접근한다.
나도 주로 값을 전달할 때 포인터를 활용하여 전달을 많이 사용하였다.
레퍼런스에 의한 전달 (Passing by Reference)
레퍼런스에 의한 전달은 C에서는 없는 C++의 특징이다.
출력인자, 입출력 인자 전달 시 사용 된다.
헷갈릴 수 있는데, 함수의 인자에 &(레퍼런스)이 붙으면 레퍼런스에 의한 전달이고
*(포인터)가 붙으면 포인터에 의한 전달이라고 이해하면 되겠다.
'Tech Blog > C and C++' 카테고리의 다른 글
C++, STL-2 set, map, hash (0) | 2023.01.10 |
---|---|
C++, STL-1 Array와 VECTOR와 LIST (0) | 2023.01.10 |
C언어 - recursion (재귀) (0) | 2021.06.17 |
C언어 - 매크로 함수(#define) 전처리기 (0) | 2021.06.17 |
C언어 - 이진탐색트리 - 실습 (0) | 2021.06.17 |