第8章函数
本章学习要点: 掌握函数的定义方法; 掌握函数的类型和返回值; 掌握形式参数与实际参数、参数传递; 掌握函数的正确调用,了解函数的递归调用; 掌握局部变量和全局变量、变量的存储类型,作用域和 生存期;
8.1 概述函数:英文名为Function,直译为"功能","函数"的意思.在C语言里,函数指的是实现一个特定功能的程序模块.它相当于其他语言中的子程序.1.一个C语言程序可分为若干个函数 2.每个程序有且只能有一个主函数(main),其它函数都都是子函数.3.每个C程序由主函数调用子函数,子函数也可以相互调用.在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用.
main
函数a
函数e
函数f
函数g
… ...
… ...
… ...
函数b
函数h
函数I
函数J
… ...
… ...
… ...
函数c
函数K
函数L
函数M
… ...
… ...
… ...
函数a
函数M
函数e
说明:1) 源程序文件可由一个或多个函数组成,其中主函数是不可缺省的.源程序文件是编译单位,函数不是编译单位;2)一个C程序由一个或多个源程序文件组成.较大的C程序,常将一些函数和其他内容分别放在若干源文件中,再由若干源文件组成一个C程序.最简单的情况,一个C程序由一个源程序组成,这个源程序中只包含了一个函数-主函数;3)C程序的执行从main函数开始, 调用其他函数后仍回到main函数,程序在main函数结束时结束 4)所有子函数都是平行的,任何子函数都不属于其它函数 5)所有函数在定义时是相互独立的,函数之间可以相互引用但不能嵌套定义;
例:8-1#include
说明1)每个程序有且只能有一个主函数(main),其它函数都是子函数.2)C程序的执行从main函数开始, 调用其他函数后仍回到main函数,程序在main函数结束时结束 3)所有子函数都是平行的,任何子函数都不属于其它函数
How do you do!
函数的分类:1)从用户使用的角度函数可分为:标准函数,即库函数.由系统提供,用户不必定义,直接使用;用户自定义函数.由用户根据需要,自行编写,以解决专门需要;2)从函数的形式分,函数可分为:无参数函数.在调用无参函数时,主函数并不将数据传送给被调用函数,一般用来执行指定的一组操作.无参函数可以带回也可以不带回函数值,一般以后者居多; 如:printstar( )有参函数.在调用函数时,在主函数和被调用函数之间有数据传递; 如:max(a,b)
8.2 函数定义的一般形式
函数定义的一般形式:类型标识符 函数名([形式参数说明] ){ 函数体 } 形式参数说明方法:类型标识符 变量名[,类型说明符 变量名]……1.无参函数的定义形式 类型标识符 函数名(函数体}2.有参函数定义的一般形式 类型标识符 函数名 (形式参数表列 ){ 函数体} 3.空函数定义的一般形式类型标识符 函数名 (形式参数表列 ){}
例如:int max(int x,int y){ int z; z=x>y?x:y; return(z);}例如: void printhello(printf("Hello ,word\n"); }
函数定义的一般形式:类型标识符 函数名([形式参数说明] ){ 函数体 } 形式参数说明方法:类型标识符 变量名[,类型说明符 变量名]……1.无参函数的定义形式 类型标识符 函数名(函数体}2.有参函数定义的一般形式 类型标识符 函数名 (形式参数表列 ){ 函数体}
例如:int max(int x,int y)int z;z=x>y?x:y;return(z);}
例如:void printhello(char name[printf("Hello ,%s\n", name); }