#include <stdio.h>
#include <stdlib.h>
#pragma warning (disable:4996)
void fruit(int n);
int main(void)
{
fruit(1); //처음 호출하니까 1
return 0;
}
void fruit(int n)
{
printf("apple\n");
if (n == 3) return;
fruit(n + 1);
printf("jam\n");
}
n==3딱 될때까지 apple 세번 출력하고
그다음에 return 하면
n==1인 void fruit(1)
n==2인 void fruit(2)
n==3인 void fruit(3)이
꿈 세단계 만들듯이
만들어진거구
3에서 return하니까 return이 일종의 킥처럼
3단계꿈에서 킥받아서 2단계꿈가듯이 2의 fruit(2)으로 가서 fruit(n+1) 밑에 jam 실행하구
2단계에서 킥받아서 1단계 꿈 가듯이 1의 fruit(1)으로 가서 fruit(n+1) 밑에 jam 실행해서
apple
apple
apple
jam
jam
되는거냐?
goto 랑 별반 다르지않음 어셈블리단위에서