회신: 41.6번 코딩, 무엇이 문제인가요?
, 도장_ 관리자님이 작성코드에서 NULL은 미리 정의된 값이고, "NULL"은 NULL이라는 알파벳이 들어간 문자열입니다.
char *s1 = "Hello"; // 읽기 전용 문자열
s1 = "ERROR"; // 읽기 전용이므로 에러 발생
읽기 전용이므로 입력 받은 값으로 바꾸는 것도 할 수 없습니다.
char *s1 = "Hello"; // 읽기 전용 문자열
scanf("%s", s1); // 읽기 전용이므로 에러 발생
읽기 전용 문자열에 대해서는 Unit 39.2의 예제 string_pointer_element_assign_error.c를 확인하세요. 문의한 코드와 정확하게 같은 유형입니다.
읽기 전용 문자열에 값을 할당하는 실수는 자주 발생합니다. 이에 대해서는 Unit 39.1, 39.2, 40.2와 Unit 40 다음의 핵심정리에서 한 번씩 설명되어 있습니다. Unit 41.6까지 차례대로 학습하면서 한 번씩은 봤을 겁니다.
자주하는 실수이므로 이에 대해서는 이어서 Unit 42.1, 42.2에서도 설명합니다.