资源描述:
《C语言函数详解.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第七章函数在解决一个比较复杂的实际问题时,不可能把所有要完成的任务全都写在main函数中。这时,程序往往由一个main函数和若干个其它函数组成,每个函数各自完成相对独立的部分功能。C语言通过函数实现模块化的程序设计方法函数间相互调用的示意main()f1()f11(){{{┇┇┇f1();f11();}┇┇f12()f2();f12();{┇┇┇}}}f2()f21(){{┇┇f21();}┇}函数的分类从函数形式无参函数有参函数从用户角度标准函数(库函数):由系统提供用户自定义函数库函数由系统提供,用户只要按照要求的格式正确调用即可。不同的C编译系统提供的库函数有些不同。§7.1
2、库函数使用库函数应注意的问题:1、调用库函数时要用#include命令将相关的头文件包含进来。如:调用数学函数,用#include"math.h"
3、调用输入输出函数,用#include"stdio.h"
4、2、库函数调用的一般形式:函数名(参数表)要注意函数的功能、参数的个数与类型、函数值的类型。如:求平方根的函数sqrt的形式是:doublesqrt(doublex)3、库函数调用以两种方式出现。其一:出现在表达式中,即作为表达式的一部分参与运算。如:计算y=x2.5+1.3,则通过以下语句调用来实现。y=pow(x,2.5)+1.3;其二:独立的
5、语句,即调用函数后加一分号。如:printf("*****");4、调用库函数时,要注意参数的一些特殊要求。如三角函数要求自变量参数用弧度表示,开平方函数要求自变量参数的值大于或等于0。使用库函数应注意的问题(续)函数返回值的类型缺省int型无返回值:void函数体函数类型函数名(形参类型说明表){声明部分语句部分}例有参函数(现代风格)intmax(intx,inty){intz;z=x>y?x:y;return(z);}例有参函数(现代风格)intmax(intx,y){intz;z=x>y?x:y;return(z);}例无参函数voidprintstar(){print
6、f("**********");}或voidprintstar(void){printf("**********");}§7.2函数的定义和返回值1.函数定义的一般格式例空函数voiddummy(void){}函数体为空现代风格:多个形参说明之间要用逗号隔开没有形参时,这一对括号不能省略合法标识符函数类型函数名(形参表)形参类型说明{声明部分语句部分}传统风格:例有参函数(传统风格)intmax(x,y)intx,y;{intz;z=x>y?x:y;return(z);}传统风格:intmax2(intx,inty)/*现代风格*/{intmax;if(x>y)max=x;
7、elsemax=y;printf("max(max2)=%d",max);return(max);}voidmain(){inta,b,max;scanf("%d,%d",&a,&b);max=max2(a,b)+100;printf("max(main)=%d",max);}例函数的定义形参和函数体中定义的变量只在函数被调用时才临时分配存储单元,当退出函数时,这些存储单元全部被释放(称为局部性,因而与其它函数中的变量同名不会引起混淆)。函数与函数之间是平等的voidmain(){intmax2(intx,inty){intz;if(x>y)z=x;elsez=y;retu
8、rn(z);}inta,b,max;scanf("%d,%d",&a,&b);max=max2(a,b);printf("max=%d",max);}函数的定义是平行的,不能在一个函数的内部再定义其它函数。即每个函数都是一个相对独立的模块,不能在写某一个函数时又包含了另一个函数的定义(main函数的执行时有一点点小的特权!)。返回语句形式return(表达式);或return表达式;或return;功能:使程序控制从被调用函数返回到调用函数中,同时把返回值带给调用函数说明:函数中可以有多个return语句,但只有其中的一个return语句能够得到执行若函数中没有return语句
9、,或者是一个不带表达式的return语句,则该函数结束时自动返回调用函数一个不确定的值若函数类型与return语句中表达式值的类型不一致,按前者为准,自动转换------函数调用转换void型函数:明确说明函数没有返回值2.函数的返回值intmax(floatx,floaty){floatz;z=x>y?x:y;return(z);}main(){floata,b;scanf("%f,%f",&a,&b);printf("Maxis%d",max(a,b));}例