概述
一.函数调用形式
一般形式为:函数名 (实参列表);
-
函数调用语句:把函数调用单独作为一个语句。
printf_star();
-
函数表达式:函数调用出现在一个表达式中,参与其中运算。
c=2*max(a,b);
-
函数参数:函数调用作为另一个函数调用时的实参。
m=max(a, max(b,c));
2. 函数调用时数据传递
由前面知道,定义函数时,函数名后面的括号里面的变量是形参(形式参数);在主调函数中调用此函数时括号中的参数是实参(实际参数),实参可以是常量、变量、表达式。
例:输入两个整数,要求输出其中较大者,用函数实现。
3 .函数声明
函数声明:把函数的名字、函数类型以及形参的类型、个数和顺序通知给编译系统,以便调用该函数时系统按照此进行对照检查。
函数声明格式如下:函数原型后面加上分号
int max(int x, int y); //完整清晰,参数意义明确
int max(int, int); //精炼,参数意义不明确
函数声明位置
①在文件开头声明,即本文件都可以使用
②在某个函数内部声明,只能在具有声明的函数内使用
③如果主调函数在被调函数的后面,则可以省略声明
二. 函数的嵌套调用
C语言的函数之间是相互平行的、独立的,不允许函数内部定义另一个函数;但可以函数内部调用一个函数,调用函数又调用另一个函数。也就是嵌套调用。
例:输入4个整数,找出其中最大的数。用函数的嵌套调用处理
三. 函数的递归调用
调用一个函数的过程中又出现直接或间接地调用该函数本身,称为递归调用。
/*有5个学生坐一起,第五个比第四个大2岁,第四个比第三个大2岁...最后第一个学生说他是10岁,请问第5个学生多大?
用递归方法就n*/
#include <stdio.h>
int main()
{
int n,m,ret=0;
printf("请输入您需要计算幂数:n");
scanf("%d",&n);
printf("请输入您需要计算的底数:n");
scanf("%d",&m);
ret=power(n,m);
printf("%d",ret);
return 0;
}
int power(n,m)
{
int ret=0;
if(n==0)
ret=1;
else
ret=power((n-1),m)*m;
return ret;
}
/*5! fun(5)
5!=4!*5 fun(4)*5
4!=3!*4 fun(3)*4
3!-2!*3 fun(2)*3
2!=1!*2 fun(1)*2
1!=1 */
#include <stdio.h>
int main()
{
int n,ret=0;
printf("请输入需要计算的阶乘: ");
scanf("%d",&n);
ret=fun(n);
printf("%d!=%dn",n,ret);
return 0;
}
int fun(int i)
{
int ret=0;
if(i==1)
ret=1;
else
ret=fun(i-1)*i;
return ret;
}
/*有5个学生坐一起,第五个比第四个大2岁,第四个比第三个大2岁...最后第一个学生说他是10岁,请问第5个学生多大?
用递归方法就n*/
#include <stdio.h>
int sum(int n);
int main()
{
int n,ret=0;
printf("请问您是第几个学生: ");
scanf("%d",&n);
ret=sum(n);
printf("%d %d",n,ret);
return 0;
}
int sum(int n)
{
int ret=0;
if(n==1)
ret=10;
else
ret=sum(n-1)+2;
return ret;
}
最后
以上就是天真豆芽为你收集整理的函数的调用的全部内容,希望文章能够帮你解决函数的调用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复