작성한 질문수
[하루 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부분은 역순으로 실행되는 것이죠
link2019오류가 뜨는데 어떻게 해야 되나요??
cout << n << "번째 재귀함수" << endl;
구문은 if문 밖에 있습니다!
if문 안에서의 재귀 호출이 모두 끝나고,
함수안에 남은 코드가 실행된 것입니다 :)