Unit 44 문자열 검색하기 포인터 질문
, 정 Cel님이 작성안녕하세요
Unit 44 문자열 검색하기 공부중에 질문이 있습니다!
char s1[30] = "A Garden Diary";
char *ptr = strchar(s1, 'a');
while (ptr!= NULL)
{
printf("%s\n", ptr);
ptr = strchr(ptr+1, 'a');
}
여기서 printf("%s\n", ptr)을 하게되면 포인터 자체를 프린트 하는거니까 포인터 안에 값이 아니라 메모리 주소가 나와야 하는거 아닌가요?
printf("%s\n", *ptr)같이 포인터 역참조 안해도 되나요?
감사합니다^___^
Re: Unit 44 문자열 검색하기 포인터 질문
, 도장_ 관리자님이 작성포인터는 해당 위치를 가리키는 용도입니다.
문자열의 위치를 가리키는 용도이고, 문자열은 주소이니 역참조는 안 해도 됩니다.
char s1[30] = "A Garden Diary";
printf("%s\n", s1);
여기서도 s1도 포인터로 전달됩니다. 배열 변수명도 포인터로 변환됩니다.
자주 묻는 질문 마지막에 다음 항목을 참고해보세요.
함수 인자에 char*냐 char[]이냐는 오래된 논쟁입니다.
https://dojang.io/mod/forum/discuss.php?d=599&parent=1352