void getfac(char* alist)
{
if (*alist == '')
return;
putchar(*alist);
getfac(alist + 1);
}
int main()
{
getfac("testing");
putchar('
');
return 0;
}
진한 부분 순서 바꾸면 글자가 뒤집어지는 데 메모리를 따라가 봐도 왜 그런지 잘 모르겠음.
쉽게 설명해 줄 수 있는 사람 제발 설명 좀. 책 보면서 독학하는 데 머리가 나빠서 그런지 이해가 안됨.
진한 부분을 어떻게 바꾼다는거야??
아 순서 바꾸는구나 그럼 alist가 나타내는 주소를 추적해봐 변수기때문에 getfac(alist + 1)이 실행되고 나면 alist가 다음 문자를 가리키게 되잖아
getfac 함수 실행이랑 putchar 함수 실행 순서 그려보셈ㅇㅅㅇ
먼저 출력하고 재귀호출 나중에 하는 거랑 재귀호출해서 스택에 넣었다 뒤에 꺼부터 빼면서 출력하는 거 그 차이인 거 같은데 이게 맞나?
재귀해
재귀호출은 return 될떄까지 다음행으로 안넘어가니까 역순으로 putchar 출력하게 돼서 글자가 거꾸로 나오는거 아닐까 싶은데