바뀌지 않을 문자열은 const char*로 만들어라
C의 문자열 관련 함수를 보다 보면, 인자 앞에 const가 붙은 경우를 자주 보게 되는데, const를 왜 붙일까?
char* strcpy (char* dst, const char *src);
char* strcmp (const char* s1, const char* s2);
예를 들어 strcmp 함수는 두 문자열 s1, s2를 비교하는 것이다.
s1 or s2의 문자열을 바꾸지 않는다.
문자열을 포인터로 넘겨줄때,
이 포인터를 통해서 문자열을 조작할수 있다. (바뀔수 있다.)
문자열이 바뀌지 않는다는것이 자명할때, 혹은 바꾸려고 하지 않을때, 인자 앞에 const를 붙인다.
왜냐면 strcmp 내부에서 s1, s2를 바꾸려고 한다면, 에러를 내기 때문이다.
사실 이게 뭐 어려운건 아니라서 “그게 뭐? 할지 모르겠지만 생각보다 중요하다.
잘 알아두자.