C 언어 개열/C 언어

재귀함수(Recursive Function)

본클라쓰 2010. 8. 21. 10:22

 

 재귀함수란 자기 자신을 다시 호출하는 형태의 함수를 말한다. 재귀함수가 중요한 이유는 자료구조나 알고리즘에서 자주 사용되기 때문이다. 재귀함수의 가장 중요한 요소는 무한 재귀 호출을 피하기 위해서 탈출 조건이 명확해야 한다. 재귀 함수의 기본적 구조는 다음과 같다.


void recursive() {

    printf(" Recursive Call \n");

   recursive();

}


 위와 같은 형태로 함수 내부에서 다시 자신을 호출하는 방식을 재귀함수라고 한다. 위의 예제는 탈출조건이 없기 때문에 완전한 재귀 함수라 할 수 없다. 위의 재귀 함수를 완전한 재귀함수로 변경하기 위해서 탈출 조건을 부여하면 다음과 같다.


int counter = 1;


void recursive() {

    printf(" Recursive Call \n");


    if ( counter < 10 ) {

        counter++;

        return recursive();

    } else { return 0; }


}


위의 예제처럼 탈출조건을 부여하여 재귀함수가 끝나는 지점을 만들어주어야 한다.


 


'C 언어 개열 > C 언어' 카테고리의 다른 글

포인터(Pointer) 변수  (0) 2010.08.21
register 변수  (0) 2010.08.21
printf 함수와 scanf 함수  (0) 2010.08.21
C언어의 함수  (0) 2010.08.21
데이터 유형  (0) 2010.08.16