重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
十年的武宁网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整武宁建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“武宁网站设计”,“武宁网站推广”以来,每个客户项目都认真落实执行。
void b()
{
printf("Hello World!\n");
}
void a()
{
b();
}
void main ()
{
a();
}
这样就OK了,只要遵循一个原则,函数在被调用前必须是已经声明过的。因为编译器是要先知道有这个东西存在(已经被定义或声明过),才能通过编译。
如果函数b在函数a之前定义(如上),则不需要在函数a里定义,直接调用即可;
如果函数b在函数a之后定义(如下),则应在在a中声明函数b之后才能调用。
void a()
{
void b();
b();
}
void b()
{
printf("Hello World!\n");
}
我知道,就是函数套用,就拿6来说,第一次是fun函数调用的是6,第二次调用的是3,第三次调用的是1,第四次调用的是0;
先说第一次,当X是6时,执行if(x/20),这句用来判断x/2后是否大于零,当然大于零,注意此时x的值任然是6。
然后就执行fun(x/2),这一句执行就是第二次调用fun函数,过程如第一次,此时x是3;
接着是第三次调用fun函数,过程如上,此时x是1
接着是第四次调用fun函数,此时x为零,在执行if(x/20)这条语句时,不成立,
所以返回上一个第三个fun函数里,执行printf("%d",x);此时x是1,所以输出1,
接着返回上一个第二个fun函数里,执行printf("%d",x);此时x是3,所以输出3,
接着返回上一个第一个fun函数里,执行printf("%d",x);此时x是6,所以输出6,
接着返回主函数,执行printf("\n");整个程序结束。
所以看到输出的是136;
这里要说的是,在一个子函数里如:
fun(int x)
{
if(x/20)fun(x/2);
printf("%d",x);
}
x的值仅仅在这个函数里起作用,出了这个函数就不起作用了,同样其他函数里的x的值也不会影响在这个函数里的x的值,这个函数里,没有对x重新赋值,所以在一次调用中x的值始终未变
在c中可以嵌套调用函数,但不可以嵌套定义函数。
函数嵌套调用是允许的。
int a()
{
b();//调用函数b
}
函数嵌套定义是错误的。
int a()
{
int b() //在函数a中定义函数b
{
……
……
}