7.1 为什么要用函数
在设计一个较大的程序时,往往把它分为若干个程序模块,每一个模块包括一个或多个函数,每个函数实现一个特定的功能。一个C程序可由一个主函数和若干个其他函数构成。由主函数调用其他函数,其他函数也可以互相调用。
7.2 怎样定义函数
定义函数包括以下几个内容:
(1)指定函数的名字,以便以后按名调用。
(2)指定函数的类型,即函数返回值的类型。
(3)指定函数的参数的名字和类型。
(4)指定函数应当完成的操作,也就是函数的功能。
7.3 调用函数
1.形式参数和实际参数
在定义函数时函数名后面括号中的变量名称为“形式参数”(简称“形参”)或“虚拟参数”。在主调函数中调用一个函数时,函数名后面括号中的参数称为“实际参数”(简称”实参“)。
7.3.1 函数的返回值
(1)函数的返回值是通过函数中的return语句获得的。
(2)函数值的类型。
int max(float x,float y) //函数值为整型
char letter(char c1,char c2) //函数值为字符型
double min(int x,int y) //函数值为双精度型
(3)在定义函数时指定的函数类型一般应该和return语句中的表达式类型一致。
7.4 对被调用函数的声明和函数原型
例7.4 输入两个实数,用一个函数求出它们之和。
编写程序:
#include<stdio.h>
int main(){float add(float x,float y);float a,b,c;printf("Please enter a and b:");scanf("%f,%f,&a,&b");c=add(a,b);printf("sum is %f\n",c);return 0;
}
float add(float x,float y){float z;z=x+y;return(z);
}
7.6 函数的递归调用
直接或间接地调用该函数本身,称为函数的递归调用。
int f(int x){int y,z;z=f(y); //在执行f函数的过程中又要调用f函数return(2*z);
}