[CS] Reference&Pointer

[CS] Reference&Pointer

Tags
Computer Science
참조랑 포인터랑 기능이 비슷해서 헷갈린다.
그래서 따로 정리해보았다.

참조

포인터

이중 포인터

// 메모리 효율이 좋다는 공통점이 있지만 접근 방식이 다르다. void function (vector<int>* arr){} // 객체를 가리키 포인터를 전달 void function (vector<int>& arr){} // 객체 자체를 가져옴
  • 둘 다 객체 읽기 쓰기 가능하다.
  • 참조는 객체 조작이 편하다는 장점이 있다.
  • 포인터는 동적 프로그래밍에 적합하다는 장점이 있다.

추가로 const 키워드도 사용된 위치에 따라 기능이 다 다르고 알면 유용한 게 많더라.
디버깅에도 유용하고 명시적인 효과도 있어서 좋은 듯.
void function (const vector<int>& arr){} // 객체 자체를 가져옴 // 값을 읽을 수 있지만 쓸 수 없음 void function () const {} // 멤버 함수가 객체를 읽을 수 있지만 수정할 수 없음