인프런 커뮤니티 질문&답변

Poki님의 프로필 이미지
Poki

작성한 질문수

[하루 10분|C++] 누구나 쉽게 배우는 C++ 프로그래밍 입문

재귀함수와 함수를 지시하는 포인터

재귀함수 질문

작성

·

280

2

강의 잘 듣고 있습니다! 

한가지 질문이 있는데, 

countDown(int n) 함수에서, 

재귀 호출을 통해 5부터 0까지

출력이 되는 부분은 이해를 하였는데,

그 뒤로 0번째 재귀함수 ~ 5번째 재귀함수가 

역순으로 출력되는 이유를 잘 모르겠습니다.

n이 0이 되기 전까지 "Counting . . . n " 출력이

계속 반복되고, 

n이 0이 되면, 조건문을 지나쳐 "0번째 재귀함수" 

가 한번 출력이 되고 함수가 종료되는게 아닌가요??

 

답변 4

1

if문 밖에 있는데 왜 증가하는지 모르겟어요 ㅠ

판다코딩님의 프로필 이미지
판다코딩
지식공유자

if문 안에서의 재귀 호출이 모두 끝나고,

함수안에 남은 코드가 실행된 것입니다 :)

0

n>0까지는 재귀함수를 계속 호출하여 지역변수에 스택이 쌓이게 됩니다. 그리고 n이 0보다 작거나 같으면 가장 나중에 쌓인 0부분이 먼저 실행되게 됩니다.(Last in, Frist out) 그러니까 #code2부분은 역순으로 실행되는 것이죠

0

link2019오류가 뜨는데 어떻게 해야 되나요??

 

0

판다코딩님의 프로필 이미지
판다코딩
지식공유자

cout << n << "번째 재귀함수" << endl;

구문은 if문 밖에 있습니다! 

Poki님의 프로필 이미지
Poki

작성한 질문수

질문하기