포인터 ( Pointer ) 와 const

  • 포인터는 래퍼런스( & )와 달리 참조하는 대상을 언제든지 수정할 수 있지만, const 를 이용해서 참조 대상을 변경하거나 가리키는 값을 수정하는 것을 방지할 수 있습니다.




const 위치의 따른 기능 차이

상수 포인터 ( * const )

int num = 100;

int * const ptr = #
  • 상수 포인터는 래퍼런스와 동일하게 초기화 이후 가리키는 대상을 변경할 수가 없습니다.
  • 역참조하여 값을 수정하는건 가능합니다.




상수에 대한 포인터 ( const * )

int num = 100;

int const * ptr1 = #

const int * ptr1 = #
  • * 의 왼쪽에 const 가 있다면은 포인터가 가리키는 값을 수정할 수 없습니다.
  • 프로그래머 스타일에 따라서 데이터 타입 왼쪽 또는 오른쪽에 const를 작성하며, * 의 왼쪽에만 있으면 기능은 동일합니다.




상수에 대한 상수 포인터 ( const * const )

int num = 100;

int const * const ptr = #
  • 참조하는 대상 그리고 역참조 값 또한 수정할 수 없습니다.

+ Recent posts