[C 언어 기초] 재귀함수에 대한 이해와 디자인 사례


[C 언어 기초] 재귀함수에 대한 이해와 디자인 사례

만약 처음 프로그래밍 언어를 공부한다면 상당히 부담스러운 함수 중 하나가 재귀함수였는데 다행히도 나 같은 경우에는 파이썬을 먼저 선행한 덕분에 재귀함수에 대한 이해는 크게 어렵지 않다. 파이썬을 C 언어로 개발했다고 해도 궁극적으로는 작동하는 기능 자체가 다르기 때문에 재귀함수도 어떻게 돌아갈지 모른다. 재귀함수의 기본적인 이해 재귀함수는 다음과 같이 함수 내에서 자기 자신을 다시 호출하는 알고리즘을 가진 함수를 말한다. void Recursiv(void) { printf("재귀함수 호출 \n"); Recursive(); // 자기 자신을 재호출 } 그렇다면 위의 형태를 가진 재귀함수는 어떻게 이해할까? 언뜻보면 안에서 다시 호출한 다음 다시 함수의 진입 지점으로 돌아가는 모양새가 반복문과 상당히 유사하다. 그래서 그림으로 표현하면 아마 다음과 같지 않을까? 재귀함수의 호출 과정? 따지고 보면 위의 그림이 잘못된 그림은 아니다. 그런데 완료되지 않은 함수를 다시 호출하는 것이 가능할...


#C언어 #재귀함수 #팩토리얼

원문링크 : [C 언어 기초] 재귀함수에 대한 이해와 디자인 사례