다른글 남에게 가르쳐주는 리플에

const char *은 char이 const고 char const *는 포인터가 const라고 충고하는 착각글이 있던데 (실제로는 둘다 char이 const)

아마 const 규칙을 몰라서라기보다는 const가 좌측을 수식하는 구도 자체가 몸에 안베어서 튀어나온 실수인것 같음



내가 옛날에 봤던 입문서에서도 const char * vs char * const 설명할 때

전자는 const 우측에 char이 있으니까 char이 const

후자는 const 우측에 변수명이 있으니까 변수의 최종 타입인 포인터가 const

이런 해괴망측한 방식으로 설명했던 기억

이렇게 우측을 수식한다는 식의 그림을 계속 머리에 그리면 실수하기 쉬움



const는 원래 좌측을 수식하고 없을 때만 예외적으로 우측을 수식한다고 명확히 알면

char const *, const char *, char * const 혼동이나

type alias가 수반됐을 때의 혼동을 방지하기 아주 쉬움