강의

멘토링

커뮤니티

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

JiHyun Lee님의 프로필 이미지
JiHyun Lee

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

56. 재귀함수 분석 (스택을 이용하는 재귀)

recur함수 중에서 질문 있습니다.

작성

·

182

0

안녕하세요. 강의 중 질문이 있어서 글 남겼습니다. 

void recur(int x){

if(x==0){

return;

}

else {

recur(x-1);

printf("%d",x);

}

}

코드에서 recur(x-1) 대신에 recur(--x)를 넣으면 0부터 x-1까지 출력되는데, 그 이유가 무엇인지 잘 모르겠습니다.

감사합니다.

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

recur(x-1)은 x값은 그대로 있고 다음함수로 x보다 1 작은 값을 전달하는 것이고, 

recur(--x) 는 x값이 1작아지고 1작아진 x값이 다음함수로 전달되는 것입니다. 

즉 recur(--x)는 해당 함수에서 x값 자체가 1작아지고 그 아래서 1작아진 x를 출력하는 것입니다.

JiHyun Lee님의 프로필 이미지
JiHyun Lee

작성한 질문수

질문하기