在函数使⽤的过程中,把函数的参数分为:实参和形参 举例之前的代码:
#include <stdio.h>
int Add(int x,int y)
{
//以下代码可以简化成
//return = x+y;
int z = 0;
z = x+y;
return z;
}
int main()
{
int a = 0;
int b = 0;
//输⼊
scanf(“%d %d”,&a,&b);
//调⽤⾃定义加法函数Add,实现a和b的想家 //求和的结果放在r中
int r = Add(a,b);
//输出
printf(“%d\n”,r);
return 0;
} 1.实参和形参
1.1实参
上⾯代码中,第2~9⾏是Add函数的定义, 有了函数后,在第17⾏调⽤Add函数。 我们把第17⾏调⽤Add函数时,传递给函数的参数a和b,称为实际参数,简称实参,实际参数就是真实传递给函数的参数。
1.2形参
上⾯代码中,第2⾏定义函数的时候,在函数名Add后的括号中写的x和y,称为形式参数,简称形参,为什么叫形式参数?实际上,如果只是定义了Add函数,⽽不去调⽤的话,Add函数的参数x和y只是形式上存在的,不会向内存申请空间,不会真实存在的,所以叫形式参数。形式参数只有在函数被调⽤的过程中为了放实参传递过来的值,才向内存申请空间,这个过程就是形参的实例化。
2.实参和形参的关系
虽然提到了实参时传递给形参的,它们之间是有联系的,但是形参和实参各⾃是独⽴的内存空间。这个现象是可以通过调试(F10)来观察的。
请看示例:
我们在调试的时候可以观察到,x和y确实得到了a和b的值,但是x和y的地址与a和b的地址是不⼀样的,所以我们可以理解为形参是实参的⼀份临时拷⻉。
补充:
函数的参数也可以是更加复杂的类型,可以是数组,也可以是指针。