资源描述:
《C语言第七章函数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第七章函数《C语言程序设计》第七章函数本章主要内容:7.1概述7.2函数定义7.3函数参数和函数值7.4函数调用7.5函数的嵌套调用本章重点:函数的定义和调用;函数参数;数组名作为函数的参数;局部变量等。7.6函数的递归调用7.7数组作函数参数7.8全局和局部变量7.9内部函数和外部函数本章作业《C语言程序设计》7.1概述例7.1main(){PrintStar();PrintMessage();PrintStar();}PrintStar(){printf(“**********”);}PrintMessage(){p
2、rintf(“Hello”);}PrintStar函数PrintMessage函数main函数主函数两个自定义函数**********Hello**********函数《C语言程序设计》说明:一个源程序文件由一个或多个函数组成。一个源程序文件是一个编译单位,即以源程序单位进行编译。一个C程序由一个或多个源程序文件组成。便于调试,提高开发效率。C程序总是从main函数开始执行,而不管将其写在前面、中间或最后。在调用完其它函数后返回到main函数。main函数是系统定义的。所有函数都是平行定义的(即不可以嵌套定义),但可以嵌
3、套调用。《C语言程序设计》从用户角度看,C语言函数分为两种:库函数:是系统提供的已设计好的函数,只要指定了要调用函数所在的库文件,就可以直接调用了。用户自定义函数:是用户自己编写的用来解决具体问题的函数。从函数的形式看,函数分为两类:无参函数:不需要向函数传递参数。有参函数:需要向函数传递必要的参数。本章将要详细介绍的是用户自定义函数。函数《C语言程序设计》7.2函数定义函数定义的一般形式类型符函数名(形式参数说明表){说明部分语句部分}函数函数首部函数体intadd(intx,inty){intsum;sum=x+y;re
4、turnsum;}完整的函数定义无参函数定义空函数定义intread(){intx;scanf(“%d”,&x);returnx;}dummy(){}《C语言程序设计》7.3函数参数和函数的值实参和形参:[例7.2]main(){inta=15,b=20,c;c=max(a+10,b);printf(“Max=%d”,c);}intmax(intx,inty){intz;z=x>y?x:y;returnz;}main函数max函数形参实参15a20bczxy25202525《C语言程序设计》说明:定义函数时,形参是变量,必须
5、指定类型。形参变量需要的存储单元是在函数被调用时才给它分配,函数结束时予以释放。实参与形参在个数和类型上应一一对应。实参可以是常量、变量或表达式。但变量和表达式要有确定的值。如当a=10时:c=max(7,8);/*ok*/c=max(a,2*4);/*ok*/c=max(a,b);/*error,b没有确定的值*/C语言中,参数的传递是“值传递”,即单向传递。数据只能由实参传送给形参,而不由形参传回给实参。函数《C语言程序设计》函数的返回值通常,在调用一个函数时,都希望被调函数能返回一个确定的值。这就是函数的返回值。函数的
6、返回值是通过返回语句return实现的,返回语句的形式为:return;或return表达式;前一种形式,函数返回值是不确定的,这时调用者一般对返回值不感兴趣,同时将函数说明成void类型。后一种形式,函数要把“表达式”的值返回给调用者。函数《C语言程序设计》说明:如果要从被调函数带回一个值,被调函数中必须要有“return表达式”语句。函数中可以有多个return语句,执行到哪个,哪个就起作用且立即返回调用函数。例如:intmax(intx,inty){if(x>y)returnx;elsereturny;}例7.3函数《
7、C语言程序设计》函数的返回值要有一个确定的类型,应该在定义函数时指定。如:intmax(x,y)/*max函数值为整型*/charletter(intasc)/*letter函数值为字符型*/longfact(intn)/*fact函数值为长整型*/为了明确函数不返回值,可用关键字“void”定义函数。如:voidadd(intx,inty){printf(“Sumis%d”,x+y);}函数《C语言程序设计》7.4函数调用函数调用的一般形式函数名(实参表)如果是调用无参函数,则实参表可以没有,但括号不能省略。如果实参表包含
8、多个实参,则各参数之间用逗号隔开。实参与形参的个数应相等,类型应一致。实参与形参按顺序对应,一一传递数据。如:p=power(2.5,4);/*ok*/q=power(2.5,3.8);/*error*/s=power(2.5);/*error*/t=power(5,3);/*ok*/《C