伊谢尔伦2017-04-17 15:20:09
이렇게 하면 오류가 보고되지 않지만 p가 가리키는 123
문자열을 수정하려고 하면 메모리 액세스 위반이 발생합니다. "123"은 문자열 상수이므로 읽기 전용 저장 영역에 저장됩니다. const char*
이 필요한 이유는 프로그래머가 실수로 123
을 수정하는 것을 방지하기 위함입니다.
PHPz2017-04-17 15:20:09
초보자를 위한 답변
"123"은 const char 유형의 객체입니다. const char * p는 오른쪽에서 왼쪽으로 읽어야 합니다. 즉, p는 포인터이고 가리키는 객체는 const char 유형입니다. 이것은 정확하지 않습니다. 같은 방식으로 p가 가리키는 객체가 const char인 한 끝에 p = "456";을 추가하는 것이 옳습니다.
大家讲道理2017-04-17 15:20:09
char *p = "123"; 실제로는 두 개의 프로세스입니다. 상수 영역에 문자열 공간을 할당하고, 문자 포인터 p를 선언하고, p가 문자열이 있는 메모리 공간을 가리킵니다. 즉시 정정해주세요