C언어 - 재귀 호출

2020. 11. 10. 22:45개인공부/C언어

void my_func(int);

int main()
{
	my_func(1);
    
    return 0;
}

void my_func(int n)
{
	printf("Level %d, address of variable n = %p\n", n, &n);
    
    my_func(n +1);
}

my_func가 자신을 호출하고 있다.
호출때마다 새로운 메모리를 차지하기 때문에 문제다.

 

 

 

 

void my_func(int n)
{
	printf("Level %d, address of variable n = %p\n", n, &n);
    
    
    if(n < 4 )
    	my_func(n +1);
}

종료될 조건을 같이 구현해줘야한다.

 

조건이 충족되지 않으면 종료된다.

 

 

 

void my_func(int n)
{
	printf("Level %d, address of variable n = %p\n", n, &n);
    
    if(n < 4 )
    	my_func(n +1);
        
        
   printf("Level %d, address of variable n = %p\n", n, &n);// 돌아오는 과정     
}

돌아오는 과정.

 

출처 : 홍정모의 따라배우는 C언어