Recursive or self-recursive is what I usually call it. Just be careful that you don't get stuck in the loop calling yourself, eventually blowing up the stack.
Also remember your variable. Declare variables as static if they are needed for sharing at all levels of recursion (or declare them outside the function). Pass variables to functions if you need specific information passed from one level to another. And finally, use local variables in the functions needed to maintain state for the current recursion level. Local variables will make a copy on the stack for each recursion level you call and return to the previous values ββfor each recursion that is unwound.
source share