본문 바로가기

FALL in/G.MA' s C

[C프로그래밍] - 재귀호출


재귀호출 

재귀호출은 말그대로 자기자신을 호출하여 순환 수행이 되는것이다. 

아래 소스는 팩토리얼을 계산하는 재귀함수이다. 함수안에서 자기자신을 순환적으로 호출한다.

마치 함수 구조가 '마트로시카'라는 러시아의 전통인형같다. 함수안에 함수가 있고 또 함수안에 함수가 있고 또 함수안에 함수가 있다.


재귀호출은 for문에의한 반복문보다 프로그래머가 코드를 이해하기 쉽고 간단하게 작성가능하다.

하지만 함수를 계속적으로 불러야되기때문에 실행하는데 시간이 많이 걸릴수있다.


메인함수에서 fact(4)가 실행되면 함수로 들어가

-> return 4 * fact(3);이 실행된다.

여기서 fact(3)이 실행되고(return 4 * 3 * fact(2);)

fact(2)가 실행되고 (return 4 * 3 * 2 * fact(1);)

fact(1)이 실행되고(return 4 * 3 * 2 * 1;)


fact(4)함수는종료된다. 함수반환값은 24(4 * 3 * 2 * 1)가된다.



실행결과


'FALL in > G.MA' s C' 카테고리의 다른 글

[C프로그래밍] - Call by Value vs. Call by Reference  (0) 2016.03.29
[C프로그래밍] - 메모리  (0) 2016.03.28
[C프로그래밍] - 포인터  (0) 2016.03.27
[C프로그래밍] - 구조체  (0) 2016.03.27
[C프로그래밍] - 배열  (0) 2016.03.27