http://www.cplusplus.com/reference/cstring/strchr/에있는 strchr
참조에서,이 예가 제공된다.char 포인터에서 char 배열을 빼면 int가 생성됩니까?
/* strchr example */
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "This is a sample string";
char * pch;
printf ("Looking for the 's' character in \"%s\"...\n",str);
pch=strchr(str,'s');
while (pch!=NULL)
{
printf ("found at %d\n",pch-str+1);
pch=strchr(pch+1,'s');
}
return 0;
}
왜 char
포인터 pch
에서 char
배열 str
을 뺀 않습니다 더하기 하나는 int
을 제공? (%d
형식 유형으로 표시) "-str
"을 제거하면 %d
에서 %s
으로 바뀔 때까지 프로그램이 실행되지 않습니다.
배열은 표현식에서 사용될 때 포인터로 쇠퇴하며 포인터의 차이는 이들 사이의 거리 (요소 수)입니다. – zch
@zch : 배열 의미론에 대한 OPs의 혼란을 해결해 주셔서 감사합니다. 그래도 그의 질문은 어떨까요? – Deduplicator