递归函数的返回值返回到哪?

递归函数的返回值返回到哪?是返回到调用函数处吗?再给个例题讲解一下

#include<stdio.h>

int fact(int n){
    if(n==1) return 1;
    int t;
    t = n * fact(n-1);
    printf("递归函数内:%d\n",t);
    return t;
}

int main(void){ 

    printf("递归函数外:%d\n",fact(7));

    return 0;
}