形参与实参
小明和小刚都说,要早起去锻炼,但是呢,小明每天都在睡懒觉,他只是形式上说说而已;而小刚则每天都在坚持,他是在实际行动。C语言函数中的参数也和情景中的类似有两种。
函数的参数分为形参和实参两种,形参是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数,就类似小明,说了的话而不实际行动;实参是在调用时传递该函数的参数,就如小刚能实际行动起来。
函数的形参和实参具有以下特点:
- 形参只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。
- 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值等办法使实参获得确定值。
- 在参数传递时,实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。
例如:以下函数multiDouble(int x)实现把x乘以2再返回给函数调用处。
________________________________________________________________________________________
#include <stdio.h>
int getGirth(int a,int b,int c)
{
if( (a+b)<=c || (a+c)<=b || (b+c)<=a ) //判断是否为三角形
{
printf("不构成三角形\n");
return 0;
}
else
{
int cirf =a+b+c ; //计算三角形周长
return cirf;
}
}
int main()
{
/* 定义三角形三边长 */
int a, b, c;
a = 3;
b = 4;
c = 5;
printf("三角形的周长是:%d\n",getGirth(a,b,c)); //调用周长函数
return 0;
}