Const pointer

const 포인터는 잠긴 위치를 읽는다

const가 대상 값을 잠그는지, 포인터 변수 자체를 잠그는지 구분하면 선언을 외우지 않아도 의미가 보입니다.

01

대상 값 잠금

const int* p는 p가 가리키는 int 값을 p를 통해 바꾸지 못하게 합니다.

02

주소 재지정 잠금

int* const p는 p가 다른 주소를 가리키지 못하게 하지만 대상 값 수정은 허용합니다.

03

둘 다 잠금

const int* const p는 대상 값과 포인터 재지정을 모두 막아 읽기 전용 고정 연결을 만듭니다.

1

값 읽기

함수가 값만 읽으면 const T* 또는 const T&를 우선 검토합니다.

2

주소 유지

내부에서 포인터를 바꾸면 안 될 때 T* const가 의미를 갖습니다.

3

API 의도

호출자에게 수정 가능 여부가 시그니처에서 보이는지 확인합니다.

4

없음 상태

nullptr을 받아야 한다면 참조자보다 포인터가 자연스럽습니다.