下面的函数调用,是怎么调用的,他不应该只输出一个值吗?希望来解答一下。
#include
void main( )
{
void fun(int x);
fun(8);
printf("\n");
}
void fun(int x)
{
if(x/2>0)
{
printf("%d\n",x);
fun(x/2);
}
printf("%d",x);
}
fun()里面还有调用fun(),这个叫做递归。
这段代码中定义了一个函数void fun(int x),然后调用了一次fun(8)。函数fun内部并没有输出任何值,所以程序也没有输出任何值。如果想要在函数内部输出一个值,可以在函数中使用printf等输出函数。例如下面这个例子:
#include <stdio.h>
void fun(int x)
{
printf("%d\n", x);
}
int main()
{
fun(8);
return 0;
}
运行结果为:
8
可以看到,函数内部输出了传入的参数x的值。