函数
-
函数的概念
① 函数其实就是一段可以重复调用的、功能相对独立完整的程序段。
② 主函数可以调用其他函数,其他函数也可以互相调用。
③一个C程序必须有一个且只能有一个main函数,无论main 函数位于程序的什么位置,运行时都是从main函数开始执行的。函数不能嵌套定义,也就是说一个函数不能从属于另一个函数。函数之间可以互相调用,但是任何函数不能调用main函数,main函数是被操作系统调用的。 -
定义无参函数的方法:
类型名 函数名( )
{
函数体
}
或
类型名 函数名(void)
{
函数体
}
函数名后面括号内的void表示“空”,即函数没有参数 -
定义有参函数的方法:
类型名 函数名(形式参数表列)
{
函数体
【例题1】
以下是定义的max函数是有参函数:
int max(int x,int y);
{
int z; //声明部分
z=x>y?x:y; //执行语句部分
return 0;
}
这是一个求x和y二者中大者的函数,第一行第一个关键字int表示函数数值是整型的。max为函数名。括号中有两个形式参数x和y都是整型。
⑥定义空函数:
类型名 函数名( )
{ }
【例题2】
void dummy( )
{
}
即此时函数体是空的。调用此函数时,什么工作也不做,没有任何实际作用。
-
函数的分类:
从用户角度看:库函数、用户自定义的函数
从形式:无参函数、有参函数 -
函数的特征:
特征函数定义即函数的实现,是对所要完成功能的操作进行描述的过程,包括函数命名和返回值类型声明、形式参数的类型说明、变量说明和一系列操作语句等。
函数和变量一样,必须“先定义,后使用” -
函数定义应包括以下内容:
函数的名字、返回值的类型。函数参数的类型和名字,无参函数不需要指定。 -
函数的声明部分:
在函数体中,声明部分是对函数内部所用到的变量的类型说明,并对要调用的函数进行声明。 -
调用函数
①函数表达式
函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式的运算。这时要求函数是有返回值的。
例如:y=sin(x);
②函数语句:
函数调用的一般形式加上分号即构成函数语句。
例如:printf("%d",a);
这种方式通常只要求函数完成一定的操作,不要求函数带回值。
③函数实参:
这种方式是函数作为另一个函数调用的实际参数出现,也就是把该函数的返回值作为实参进行数据传送,所以要求该函数必须是有返回值的。 -
函数调用时的数据传递
①形式参数和实际参数:
在调用有参函数时,主调函数和被调用函数之间有数据传递关系。在定义函数时函数名后面括号中的变量名称为“形式参数”或“虚拟函数”。在函数中调用一个函数时,函数名后面括号中的参数称为“实际参数”。实际参数可以是常量、变量或表达式。
②在调用函数过程中,系统会把实参的值传递给被调用函数的形参。在调用函数的过程中发生的实参与形参间的数据传递称为“虚实结合”。
【例题3】
输入两个整数,要求输出其中值较大者。要求用函数来找到大数。
解题思路:
现在关键是要用一个函数来实现它,首先要确定几个问题。
①函数名。应是定义为max。
②函数的类型。由于给定的两个数是整数,显然其中大者也是整数,也就是说max函数的值(即返回主调函数的值)应该是整型。
③max函数的参数个数和类型。max函数应该有两个参数,以便从主函数接受两个整数,参数的类型应当是整型。
编写程序:
#include <stdio.h>
int main( )
{
int max<