Hei*_*bug 12
是的你可以.它叫做递归.
void foo(){
foo(); //This is legal.
}
Run Code Online (Sandbox Code Playgroud)
当然,您需要从中返回以避免无限递归调用.无法返回将导致堆栈溢出.这是一个更好的例子:
void foo(int n){
if (n == 0)
return;
foo(--n);
}
Run Code Online (Sandbox Code Playgroud)
参见递归(计算机科学)(维基百科).
在函数内调用函数的示例:
# include<stdio.h>
int factorial(unsigned int number)
{
if (number <= 1)
return 1;
return number * factorial(number - 1);
}
void main()
{
int x = 5;
printf("factorial of %d is %d",x,factorial(x));
}
Run Code Online (Sandbox Code Playgroud)