* 函数的调用作为另一个函数调用时的实参
eg:m=max(a,max(b,c));
printf("%d",max(a,b));
*数据的传递(虚实结合)
(1)形参和实参
系统会把实参的值传递给被调用函数的形参。
\\\例题:
#include<stdio.h>
int max(int x,int y) //定义max函数,两个参数
{
int z; //定义临时变量z
z=x>y?x:y; //把x和y的最大值赋给z
return(z); //把z作为max的值带回main主函数
}
int main()
{ int max(int x,int y); //对max函数的声明
int a,b,c;
scanf("%d %d",&a,&b);
c=max(a,b); //调用max函数,两个实参
printf("max is %d\n",c);
return 0;
}
(2)函数调用的过程:
a.准备阶段
*为被调函数的每个形参分配存储单元
*把实参的值赋给对应的实参
b.执行阶段
*从被调函数的第一个语句开始执行,直到执行完所有语句或者遇到某个return 语句
c.返回阶段
*对于有返回值的函数,return 语句设定函数的返回值
*释放为被调函数的形参和变量分配的存储单元
*结束该函数的执行,返回到主调函数的调用处继续执行
说明:
(1)实参可以是常量、变量、表达式,但在调用时必须有确定的值。
(2)形参与实参的个数应一致,实参与形参的类型应相同或赋值兼容。
(3)如果调用的是无参函数,此时没有实参,但括号不能省略。
(4)如果有多个实参,大多数C系统按自左向右的顺序求值
eg: int c,i=3;
c=div(i,++i);
若是自左至右系统:c=div(3,4);
若是自右至左系统:c=div(4,4);
(5)调用函数时,将实参传递给形参(自左至右逐个的传递)。