文档介绍:第八章函数
1
函数
概述
函数定义的一般形式
函数参数和函数的值
函数的调用
函数的嵌套调用
函数的递归调用
数组作为函数参数
局部变量和全局变量
变量的存储类别
内部函数和外部函数
编译预处理
2
概述
3
一个结构化程序是按照一定的程序设计方法由很多模块组成的。每一个模块用来实现一个特定的功能。在C语言中,用函数来实现模块的功能。
在第四章我们已知道,一个C程序由一个或多个单独编译的源程序文件组成,每一个源程序文件可由一个主函数和若干函数构成。由主函数调用其它函数,其它函数也可以互相调用。
在程序设计中,常将一些重复使用的功能模块编写成函数,以减少重复编写程序段的工作量,也可将这些已编好的函数放在函数库中供公共选用。
函数
概述
4
例:打印图形: ******************
How do you do!
******************
******************
编程:
main()
{ printf("******************\n");
printf(" How do you do! \n");
printf("******************\n");
printf("******************\n");
}
三个语句一样,可编写成函数:
printstar()
{
printf("****************\n");
}
则原程序可简化为:
main()
{ printstar();
printf(" How do you do!\n"):
printstar():
printstar();
}
函数
概述
5
函数
概述
一个源程序文件有一个或多个函数组成。
一个C程序可以有多个源程序文件组成。一个原程序文件由一个或多个函数组成。一个源程序文件是一个编译单位,即以源文件为单位进行编译,而不是以函数为单位进行编译。
任何C程序都从main( )函数开始执行,当main( )的最后一条指令执行完,程序结束。
所有函数都是平行的,可以互相调用,main不能被调用。
函数的分类:
按用户的使用划分标准函数(库函数)
用户自定义函数
按函数的形式划分无参函数
有参函数
6
函数的语法形式
类型标识符函数名(形式参数表)
{ 说明部分
语句
}
函数的返回值
通过 return 语句返回。
返回值的类型为定义的函数类型,若 return 语句中表达式类型与函数类型不一致,则转换为函数类型。
无返回值的函数,定义为 void 类型。
若无参数,写 void
是被初始化的内部变量,
寿命和可见性仅限于函
数内部
若不说明类型,一律自
动按整型处理
7
函数定义的一般形式
8
函数函数定义的一般形式
1、无参函数的定义形式
类型标识符函数名(){
声明部分
语句
}
大部分无参函数不需带回函数值,因此,类型标识符可以省略
9
函数
函数定义的一般形式
2、有参函数定义的一般形式
类型标识符函数名(形式参数表列){
声明部分
语句
}
C规定,函数的数据类型是返回值的数据类型;
参数:指形式参数,各参数之间用逗号分隔;
3、空函数
类型标识符函数名()
{ }
10