资源描述:
《C语言程序设计教程 教学课件 作者 王曙燕 Chapter8 函数.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章函数概述C程序基本结构C程序源程序文件1源程序文件2源程序文件n…预编译命令函数1函数2…说明部分执行部分各模块相对独立、功能单一、程序结构清晰,可读性好;每个模块简单,所以可靠性高;减少重复编码的工作量,缩短开发周期;易于维护和功能扩充。使用函数的优点:是面向过程程序设计语言的核心。可由一个或多个源程序文件组成;每个源程序文件又由若干函数构成;但整个程序有且仅有一个主函数;程序运行时从main函数开始执行,main函数可调用其它函数,最终一律返回到main函数结束运行。函数之间是独立的,是非
2、从属关系的,即不可嵌套定义的,但可以互相调用.C程序特点:函数的分类按照函数定义的角度分为:1.标准库函数:2.用户自定义的函数是由系统定义地,也不必在程序中进行类型说明,要调用某个库函数,则要用预处理命令#include将该函数所在的头文件包含到程序中。使用库函数应注意:1、函数功能2、函数参数的数目和顺序,及各参数意义和类型3、函数返回值意义和类型4、需要使用的包含文件按照函数的参数传递形式分为:无参函数有参函数按照函数的返回值类型分为:有返回值无返回值按照函数的使用范围分为:内部函数外部函数函
3、数的定义------无参函数的定义类型名函数名(){声明部分执行部分}说明:类型名为函数返回值类型,如果定义时未指定,系统默认为int型;无返回值的函数的类型名应为void。函数名须是合法标识符,不能与其他函数或变量重名#includevoidprintstar(){printf("*************");}voidprint_message(){printf("Howareyou!");}main(){printstar();print_message();pri
4、ntstar();}类型标识符函数名(形参表列){声明部分执行部分}形参表列必须声明形参的类型函数的定义------有参函数的定义形参类型说明表,一般格式为:数据类型1形参1,…,数据类型n形参n#includefloataverage(floatx,floaty,floatz){floataver;aver=(x+y+z)/3;return(aver);}main(){floata,b,c,ave;a=6.5;b=4.2;c=25.3;ave=average(a,b,c);pri
5、ntf(“average=%f”,ave);}void函数名(){}函数体可以没有,表示占个位置,实现功能以后补写。函数的定义------空函数的定义函数参数和函数的值函数参数分为:实际参数和形式参数在函数定义的函数首部,函数名后的括号中说明的变量,简称形参。形参的个数可以有多个,多个形参之间用逗号隔开。形式参数:实际参数:函数被调用时,在调用处给出对应的参数,简称实参,实参往往是具有明确值的常量、变量或表达式等。#includefloataverage(floatx,floaty
6、,floatz){floataver;aver=(x+y+z)/3;return(aver);}main(){floata,b,c,ave;a=6.5;b=4.2;c=25.3;ave=average(a,b,c);printf(“average=%f”,ave);}形式参数(形参)实际参数(实参)说明:1.形参在未出现函数调用时,他们并不占内存,只有发生函数调用时才会被分配空间,而且在该函数结束后,它所占的所有内存也被释放;2.实参必须是具有确定值的常量,变量或表达式;3.形参必须在定义时就声明其
7、类型;6.实参与形参的类型应相同或赋值兼容;7.C语言规定,实参与形参之间必须是单向的值传递。4.实参的个数和形参的个数应该相等;5.实参与形参在顺序上应该一一对应;例如:编一程序,将主函数中的两个变量的值传递给swap函数中的两个形参,交换两个形参的值。#includevoidswap(intx,inty){intz;z=x;x=y;y=z;printf("x=%d,y=%d",x,y);}main(){inta=10,b=20;swap(a,b);printf("a=%
8、d,b=%d",a,b);}形式参数(形参)实际参数(实参)单向值传递例如:编一程序,将主函数中的两个变量的值传递给swap函数中的两个形参,交换两个形参的值。#includevoidswap(intx,inty){intz;z=x;x=y;y=z;printf("x=%d,y=%d",x,y);}main(){inta=10,b=20;swap(a,b);printf("a=%d,b=%d",a,b);}程序输出结果:x=20,y=