写在最前面
在C语言中,函数是独立的,没有任何一个函数依靠另一个函数运行,而是一个函数中调用另一个函数(注意:依靠不等于调用),也就是说函数
举个例子,什么是嵌套定义:
#include <stdio.h>
int main(){
int functiona();//声明一个名为functiona的函数
int functionb();//声明一个名为functionb的函数
functiona();//调用functiona函数
functionb();//调用functionb函数
return 0;
}
//开始定义functiona的函数
int functiona(){
printf("我是functiona的函数");
//开始定义functionb的函数
int functionb(){
printf("我是functionb的函数");
return 0;
}
return 0;
}
上面这个例子是个错误的示范,在实际的开发中绝对不能这样定义。
嵌套调用
定义:
在调用一个函数的过程中调用另一个函数。
举个例子:
在main函数中调用了a函数之后,在执行a函数的过程中又调用了b函数,在b函执行完成后又返回到a函数中调用b函数的下一句执行,在a函数执行完之后又返回到main函数中调用a函数的下一句执行,知道整个程序执行完成。
食用代码:
由于调用过程已经在定义里面说明了,所以直接上食用代码:
#include <stdio.h>
int main(){
int functiona();//声明functiona函数
int functionb();//声明functionb函数
printf("我是main函数,即将调用functiona函数\n\n");
functiona();//调用functiona函数
printf("我是main函数,我已经执行完成了\n");
return 0;
}
//开始定义functiona函数
int functiona(){
printf("我是functiona函数,我将要调用functionb函数\n\n");
functionb();
printf("我是functiona函数,我将要返回main函数\n\n");
return 0;
}
//开始定义functionb函数
int functionb(){
printf("我是functiona函数,我已经执行完成了,将要返回functiona函数\n\n");
return 0;
}
在举一个实例,求四个数中的最大值:
#include <stdio.h>
int main(){
int max;
int max4(int a,int b,int c,int d);
int max2(int x,int y);
max=max4(85,0,66,305);
printf("最大的数为:%d",max);
return 0;
}
int max4(int a,int b,int c,int d){
int x,y,z;
x=max2(a,b);
y=max2(c,d);
z=max2(x,y);
return z;
}
int max2(int x,int y){
int max;
max =x>y?x:y;
return max;
}
总结
在上述程序中,在main函数中首先调用max4函数并将四个整数带入函数,其次在max4函数中调用max2函数进行两两比较,将最大值返回到max4函数中储存,最后将比较的结果返回到main函数中的max变量中储存并输出。
© 版权声明
THE END
暂无评论内容