이 코드를 고려하십시오.문자열 및 배열 이해
int main()
{
char *s, *t;
s = malloc(4 * sizeof(char));
strcpy(s, "foo");
t = s;
printf("%s %s\n", s, t); // Output --> foo foo
strcpy(s, "bar"); // s = "bar"
printf("%s %s\n", s, t); // Output --> bar bar
}
2 문자열 s
및 t
있다. 먼저 s
을 "foo"
으로 설정 한 다음 t
을 s
으로 지정합니다. 문자열을 인쇄하면 foo foo
이됩니다.
그런 다음 "bar"
에서 s
까지 복사하고 다시 인쇄하면 bar bar
이됩니다.
이 경우 t
의 값이 변경되는 이유는 무엇입니까? (내가 "bar"
을 s
에 복사 한 이유는 t
이었습니다). 이 코드는 나에게 foo foo
및 bar foo
을 제공
int main()
{
char *s, *t;
s = malloc(4 * sizeof(char));
strcpy(s, "foo");
t = s;
printf("%s %s\n", s, t); // Output --> foo foo
s = "bar"
printf("%s %s\n", s, t); // Output --> bar foo
}
-
는 지금은 strcpy(s, "bar")
s = "bar"
에 변경할 때.
왜이 경우 변경되지 않았습니까?
** 사회자 참고 ** : 멋진 게임. 주제에 대한 의견을 유지하십시오 (즉, 설명을 요구해야 함). 이 질문의 장점에 대한 토론을 원하면 [here] (http://meta.stackoverflow.com)로 이동하십시오. –
질문의 두 번째 부분을 삭제했습니다. 계속 묻고 싶다면 별도의 게시물을 만드십시오. 게시물 당 단 하나의 질문 만해야합니다. – sashoalm