재귀호출 |
재귀호출은 말그대로 자기자신을 호출하여 순환 수행이 되는것이다.
아래 소스는 팩토리얼을 계산하는 재귀함수이다. 함수안에서 자기자신을 순환적으로 호출한다.
마치 함수 구조가 '마트로시카'라는 러시아의 전통인형같다. 함수안에 함수가 있고 또 함수안에 함수가 있고 또 함수안에 함수가 있다.
재귀호출은 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 |