기금넷 공식사이트 - 금 선물 - C 언어, 왜 char str[]= "중국을 사랑합니다" 는 값을 지정할 수 있지만 Charstr [20]; 다시 할당 하는 것은 불법입니까?

C 언어, 왜 char str[]= "중국을 사랑합니다" 는 값을 지정할 수 있지만 Charstr [20]; 다시 할당 하는 것은 불법입니까?

먼저 char * str 이라고 하죠

Str= "나는 중국을 사랑한다";

이 두 문장의 본질은 메모리에 메모리 공간을 열고' 중국을 사랑한다' 를 이 메모리 공간에 넣은 다음 이 메모리 공간의 주소를 str 에 주는 것이다. Str 은 변수이기 때문에 값을 할당하는 것은 합법적이다.

Char str[]= "저는 중국을 사랑합니다." 를 보세요. 이 문장의 역할은 char 배열을 정의하는 것입니다. 여기서 str 은 배열 이름과 첫 번째 요소의 주소입니다. 이것이 변수의 정의이기 때문에 컴파일러는 메모리 공간을 열고 문자열을 넣은 다음 str 에 주소를 주는 것이 허용됩니다.

마지막으로 char str [20] 을 보세요.

Str = "나는 중국을 사랑한다!" 을 눌러 섹션을 인쇄할 수도 있습니다 이 문장에서는 먼저 char 배열 str 을 정의했고, str 은 크기가 20 인 메모리 공간을 가리킨 다음 메모리 공간을 열어 문자열을 배치합니다. 이때 문제가 왔다. Str 자체는 고정된 값이니, 네가 강제로 새 주소를 부여하는 것은 당연히 불합리하다.