지금 재귀함수쪽을 배우고잇는데

2의 제곱을 나타내는 코드인데 이해가 안가는 부분이 있어서 질문드립니다

#include<stdio.h>
long power(int, int);
void main()
{
 long p;
 int i;

 for(i=0;i<=5;i++)
 {
  p = power(2,i);
  printf("2 ^ %d = ] \n",i,p);
 }
}
long power(int x,int y)
{
 if(y == 0)
  return 1;
 else
  return x * power(x,y-1);
}

여기서 맨마지막 retrun x * power(x,y-1); 이부분에

y-1이 왜 들어가야하는지 이해가안가네요..ㅜㅜ

어차피 retrun값을 주니까 -1안해도 돼는것 아닌가요??