[c] char * const / char const * / const char * 차이

숭글·2023년 1월 13일
0
post-custom-banner

컴파일러가 const를 만나면 어떤 타입을 constant하게 처리할 지 탐색하는데, 일단 const의 왼쪽을 탐색 후 존재하지 않으면 오른쪽을 탐색하게된다.

① char * const
char const *
③ const char *

const의 좌측(좌측이 없다면 우측)에 뭐가 있는지 확인한다.
①은 char의 포인터를 const화 한다.
②는 char를 const화 한다.
③은 char를 const화 한다.

②와 ③은 사실상 같은 의미이다.
const가 char를 가리키므로 변수가 가리키는 char를 변경하면 에러가 발생한다.

①의 const는 char의 포인터를 가리킨다. 내용은 바꿀 수 있지만 포인터가 가리키는 주소를 변경하려하면 에러가 발생한다.

profile
Hi!😁 I'm Soongle. Welcome to my Velog!!!

0개의 댓글