44.1 질문드립니다.
, 호옹 이님이 작성int main()
{ char s1[30] = "A Garden Diary";
char* ptr = strrchr(s1, 'a');
while (ptr != 'A')
{
printf("%s\n", ptr);
ptr = strrchr(ptr-1, 'a');
}
return 0;
}
44.2 오른쪽 끝부터 하는 예제를 44.1처럼 해보려고 했는데 NULL대신 'A'로 했더니 ['!=': 'char *'의 간접 참조 수준이 'int'과(와) 다릅니다]라는 경고가 나오면서 ary가 무한반복되는데 이게 어떤 이유때문에 이런건가요?
Re: 44.1 질문드립니다.
, 도장_ 관리자님이 작성
char s1[30] = "A Garden Diary";
char* ptr = strrchr(s1, 'a');
ptr의 타입은 pointer to char입니다.
포인터 관련된 내용은 UNIT 34부터 복습하세요.
UNIT 34에서 그림 34-9를 숙지하세요.
while (ptr != 'A')
'A'의 타입은 char입니다. ptr은요? pointer to char입니다.
포인터로 가리키는 char에서 pointer to 접두어를 제거하고 char 값만 접근하는 것은요? 역참조라고 말하는데, 참조, 역참조 같은 말이 더 헷갈리니 영어로만 생각합니다.
*을 붙입니다. *ptr은 char 타입입니다.
타입이 다르면 오류입니다.