if表达式2
语句1;
12๐当代最优秀的程序设计语言
早期的9ix系统。由á于cນ语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,cນ开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用,成为ฦ当代最优秀的程序设计语言之一。
语句
}
有参函数比无参函数多了一个内容,即形式参数表列。在形参表中ณ给出的参数称为形式参数,它们可以是各种类型的变量,各参数之间用逗号间隔。在进行函数调用时,主调函数将赋予这些形式参数实际的值。形参既然是变量,必须ี在形参表中ณ给出形参的类型说明。
例如,定义一个函数,用于求两个ฐ数中的大数,可写为:
intmaxinta,intbຘ
{
ifabreturna;
el色returnb;
}
第一行说明max函数是一个ฐ整型函数,其返回的函数值是一个ฐ整数。形参为a,bຘ,ไ均为整型量。a,ไb的具体值是由á主调函数在调用时传送过来的。在{}中的函数体内,除形参外没有使用其它变量,因此只有语句而没有声明部分。在max函数体中的return语句是把a或b的值作为ฦ函数的值返回给主调函数。有返回值函数中至少应有一个return语句。
在c程序中,一个函数的定义แ可以放在任意位置,既可放在主ว函数main之ใ前,也可放在main之后。
例如:
可把max函数置在main之后,也可以把它放在main之ใ前。修改后的程序如下所示ิ。
例81
intmaທxinta,intb
{
ifaeturna;๙
el色returnb;
}
main
{
intmaxinta,intbຘ;
intx,ไy,z;
printf"ิinputt9onumbຘers:\n"ิ;
s9๗f"%d%d",&x,ไ&ุy;
z=maxx,y;๙
printf"maxmum=%d",z;
}
现在我们可以从函数定义、函数说明及函数调用的角度来分析整个程序,从中进一步了解函数的各种特点。
程序的第1行至第5行为max函数定义。进入主ว函数后,因为准备调用max函数,故先对max函数进行说明程序第8๖行。函数定义和函数说明并不是一回事,在后面还要专门讨论。可以看出函数说明与函数定义中的函数头部分相同,但是末尾要加分号。程序第1้2行为调用max函数,并把x,y中的值传送给maທx的形参aທ,ไb。max函数执行的结果a或bຘ将返回给变量z。最后由á主ว函数输出z的值。
83函数的参数和函数的值
831形式参数和实际参数
前面已经介绍过,函数的参数分为形参和实参两种。在本小节中,进一步介绍形参、实参的特点和两ä者的关系。形参出现在函数定义แ中ณ,在整个函数体内都可以使用,离开该函数则ท不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能ม使用。形参和实参的功能ม是作数据传送。生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主ว调函数向被调函数的数据传送。
函数的形参和实参具有以下特点:
1形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部ຖ有效。函数调用结束返回主调函数后则不能再使用该形参变量。
2实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值。
3实参和形参在数量上,类型上,顺序上应严å格一致,否则ท会生类型不匹配”的错误。
4函数调用中生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参的值生改变,而实参中ณ的值不会变化。
例82可以说明这个问题。
main
{
intn;
printf"ิinputnumbຘer\n";
s9;
sn;
printf"n=%d\n"ิ,n;๙
}
intsintn
{