나는 C에서 begginner이므로 제발 나와 함께하시기 바랍니다; 배열 문을 *c
또는 c[]
으로 만들 수 있음을 알고 있습니다.C에서 Memset에 관한 간단한 문제
내 질문은 memset 함수에 관한 것입니다 :
char str[] = "hello!";
memset (str,'-',2);
puts (str);
작품 잘. 는 그러나 :
char *str = "hello!";
memset (str,'-',2);
puts (str);
망가 작업, 나는 문자 *str = ...
정상적인 배열 문 것을 알고있다.
아무도 내가 이걸 도와 줄 수 있다면 감사합니다!
포인터 및 배열에 관해서는 귀하의 질문이 많은 사람들에게 답변 해줄 것입니다. 가치에 의한 복사 또는 포인터에 의한 복사 (다른 사람들이 그것을 어떻게 부르는 지 참조)와 같은 것을 생각하십시오. 같은 개념이 두 가지로 발생합니다. 'char str = "hello";'는 당신이 그 배열 내에서'hello' 문자열을 복사한다는 것을 의미합니다. 그리고'Char * str = "hello"; 그 리터럴 문자열을 가리키는 포인터를 처리하고'C'에서 그것들을 읽고 액세스하지만 포인터를 쓰거나 편집 할 수는 없습니다. 당신이 지금 그 차이를 이해하기를 바랍니다. – Michi
* c는 배열 문이 아닙니다. – Fredrik