왜 const char* str
을 바꿀 수 있는 것일까?
const라면 값이 바뀌지 않아야하는 것 아닐까?
const char* str
는 스트링이 const인 것이고, 그것을 가리키는 포인터는 const가 아니다. 그래서 포인터인 str가 가리키는 값을 바꿀 수 있는 것이다.
char * const str1
;
str1 is a constant pointer to a character
str1
는 바뀔 수 없지만char
는 바뀔 수 있다.
const char * str2
;
str2 is a pointer to a character constant
str2
는 바뀔 수 있지만 포인터가 가리키는char
는 바뀔 수 없다.
const char * const str3
str3 is a constant pointer to a character constant
str3
와 포인터가 가리키는char
둘 다 바뀔 수 없다.