二级C语言考试辅导教程第五章:函数[2]

二级C语言考试辅导教程第五章:函数[2],第1张

二级C语言考试辅导教程第五章:函数[2],第2张

2.参数函数的一般形式
类型描述符函数名(形参表)
类型参数类型描述
{
类型描述
语句
}
参数函数中的内容比非参数函数中的多两个,其形参表中给出的参数称为形参。它们可以是各种类型的变量,参数之间用逗号分隔。当进行函数调用时,调用函数会给这些形式参数实际值。既然参数是变量,当然必须说明类型。比如定义一个函数求两个数中的大数,可以写成:
int max(a,b)
int a,b;
{
if (a>b)返回a;
else返回b;
}
第一行说明max函数是整数函数,返回的函数值是整数。参数是A和B,第二行表示A和B是整数。a和b的具体值由调用函数传递。{}中的函数体,除了形参没有其他变量,所以只有没有变量类型描述的语句。上述定义方法称为“传统格式”。这种格式不便于编译系统检查,会造成一些非常细微且难以跟踪的错误。在ANSI的新标准中,形式参数的类型描述被合并到形式参数表中,称为“现代格式”。
比如max函数可以定义为
int max (int a,int b)
{
if(a > b)return a;
else返回b;
}
Modern format在定义和描述函数时给出了形参及其类型(后面会介绍),在编译时很容易检查它们的错误,从而保证了函数描述和定义的一致性。例1.3采用了这种现代格式。max函数体中的return语句将a(或b)的值作为函数值返回给tone函数。具有返回值的函数中至少应该有一个return语句。在C程序中,函数的定义可以放在任何地方,可以放在main函数main之前,也可以放在main函数之后。比如例1.3中定义了一个max函数,它的位置在main之后,也可以放在main之前。
修改后的程序如下所示。
int max(int a,int b)
{
if(a>b)返回a;
else返回b;
}
void main()
{
int max(int a,int b);
int x,y,z;
printf("输入两个数字:\ n ");
scanf("%d%d ",&x,& y);
z=max(x,y);
printf("maxmum=%d ",z);
}
现在我们可以从函数定义、函数描述、函数调用的角度来分析整个程序,从中可以进一步了解函数的各种特性。程序的第1行到第5行定义了max函数。进入主函数后,因为我们要调用max函数,所以先解释一下max函数(程序第8行)。函数的定义和函数的描述不一样,后面会讨论。可以看到,函数描述与函数定义中的函数头是一样的,只是在末尾加了一个加号。程序的第12个动作调用max函数,将x和y中的值传递给max的参数a和b。max函数执行的
结果(A或B)会返回给变量z,最后主函数输出z的值
函数调用的一般形式前面已经说过了。在程序中,通过调用函数来执行函数体,过程类似于其他语言中的子程序调用。在C语言中,函数调用的一般形式是:

调用无参数函数时,函数名(实际参数表)没有实际参数表。实际参数表中的参数可以是常数、变量或其他结构化数据和表达式。参数用逗号分隔。下一页在C语言中,可以通过以下方式调用函数:
1 .函数表达式
函数作为表达式中的一个项,用它的返回值参与表达式的运算。此方法要求函数有返回值。比如:z=max(x,y)是赋值表达式,max的返回值给变量z. Next of page
2。函数语句
函数调用的一般形式加上分号就构成了函数语句。例如:printf ("%D ",a);scanf ("%d ",& b);都是以函数语句的形式调用函数。
3。函数参数
该函数作为另一个函数调用的实际参数出现。在这种情况下,函数的返回值是作为参数传递的,所以要求函数必须有返回值。例如:printf("%d ",max(x,y));即max call的返回值作为printf函数的一个参数。函数调用中另一个需要注意的问题是求值顺序。所谓求值顺序,是指参数表中的量是从左到右使用还是从右到左使用。在这方面,每个系统的规定不一定相同。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 二级C语言考试辅导教程第五章:函数[2]

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情