열혈강의에서 strcpy함수에서 const가 이해가 안되요.
반율하
2023.04.01
char * strcpy(char* dest, const char* src);
이렇게 사용된다고 되어있는데, 예제에서
char str1[20]=Samuel P. Harbison;
char str2[20];
strcpy(str2, str1);
이렇게 되어있더라고요.
const char*이라면 문자열 상수를 가르키는 것이라고 해석하고 있었는데.
str1에 문자열이 저장되어있다고는 하나 배열이므로 문자열 변수가 아닌가요?
그런데 위에 strcpy(str2, str1)가 왜 맞는 것인지요?
-
Creative
감사합니다!
-
Isolation
const가 없는 dest는 문자 배열의 내용을 고치겠다는 뜻이고,
const가 있는 src는 문자 배열의 내용을 고치지 않겠다는 뜻입니다.
const char *src 에 char *형은 전달할 수 있습니다.
char * 형을 전달했지만 안 수정하지 않겠다는데... 뭐 이의가 없는 것이죠.
반대로
char *dest 에 const char * 형을 전달하면,
수정할 수 있는 자료를 달라고 했더니, 수정할 수 없는 자료를 주면,
아무래도 함수가 -
크심
최소한 strcpy함수에서는 src를 문자열 상수로 취급하겠다는 뜻이 아닐까요?
두번째 인자 src를 절대 이 함수에서는 변경하지 않겠다는 의미로 말입니당