C语言程序设计教程 教学课件 作者 宗大华 陈吉人 第6章.ppt

C语言程序设计教程 教学课件 作者 宗大华 陈吉人 第6章.ppt

ID:50044427

大小:96.00 KB

页数:25页

时间:2020-03-08

C语言程序设计教程 教学课件 作者 宗大华 陈吉人 第6章.ppt_第1页
C语言程序设计教程 教学课件 作者 宗大华 陈吉人 第6章.ppt_第2页
C语言程序设计教程 教学课件 作者 宗大华 陈吉人 第6章.ppt_第3页
C语言程序设计教程 教学课件 作者 宗大华 陈吉人 第6章.ppt_第4页
C语言程序设计教程 教学课件 作者 宗大华 陈吉人 第6章.ppt_第5页
资源描述:

《C语言程序设计教程 教学课件 作者 宗大华 陈吉人 第6章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章函数本章着重讲述4个方面的内容:(1)定义函数的方法。(2)编写程序时,调用函数和被调函数的位置关系。(3)调用函数和被调函数间数据传递的各种方式。(4)程序中各个变量的作用域和生命期。6.1函数的概念所谓“函数”,是程序中可以反复使用的一个程序段,其它函数可以通过调用语句来执行这段程序,完成所需要的工作。C语言本身为用户提供了很多函数,这称为“系统函数”。程序设计者自己编写的函数,称为“用户函数”。6.1.1函数的定义函数定义的一般格式是:<函数类型><函数名>(<形式参数表>){<函数体>}其中:(1)<函数类型>:是所定义函数在执行完后返回结果的数据类型,即返回值的类型。(

2、2)<函数名>:是所定义函数的名称,它可以是C语言中任何合法的标识符。(3)<形式参数表>:形式参数表中列出的形式参数,简称“形参”。被调函数就是通过这些形参,接收从调用函数传递过来的数据。定义的函数可以有参数,也可以没有参数。如果定义的函数有形参,则称为“有参函数”,否则就是“无参函数”。(4)<函数体>:函数体由一对花括号“{}”括起,它由变量说明语句和执行语句序列组成。6.1.2函数的调用根据一个函数是否有返回值,C语言将以不同的方式对它们进行调用。(1)没有返回值的函数,是以函数调用语句的方式进行调用的。即:<函数名>(<实际参数表>);(2)有返回值的函数,是以函数表达式的方

3、式调用的。即:<函数名>(<实际参数表>)这两种调用方式根本的不同是:前者是一个语句,以分号结尾;后者是一个表达式,凡是一般表达式能够出现的地方,它都可以出现。函数调用时给出的<实际参数表>中,必须列出与被调函数定义中所给形参个数相等、类型相符、次序相同的实参,各实参之间仍以逗号为分隔符。否则就会出现语法错误。6.1.3函数的原型说明在函数中调用一个用户函数时,必须首先保证这个被调用的用户函数已经存在。如果放的位置颠倒了,若被调函数返回值的类型是int、char,那么不会产生什么影响;若被调函数返回值的类型是非int、非char,即返回值的类型是float、double或void等,那

4、么编译时就会给出出错信息。C语言提供了两种解决这个问题的办法,一是把被调用者与调用者的位置重新放正确;二是保持这种颠倒的位置关系,但在整个程序最前面或在调用函数里先对被调函数做一个说明,这就是所谓的“函数原型说明”。函数原型说明的一般格式是:<函数类型><函数名>(<形参类型表>);它类同于函数定义中的函数头,但有两点区别:一是函数定义中函数头里给出的是形式参数表,它由“<类型><参数>”对组成,函数原型说明里给出的是形参类型表,它只列出“<类型>”;二是函数原型说明要以分号为结尾,成为一条说明语句。6.1.4变量的作用域和生命期1.全局变量、局部变量与变量的作用域编写程序时,C语言允

5、许在3个地方说明变量。(1)在所有函数之外。这种变量称为“全局变量”,它可以被该程序中的所有函数使用。(2)在某个函数(或复合语句)里面。这种变量称为“局部变量”,它只能在说明它的范围内使用。(3)作为函数的形参。这类变量也是局部变量,其作用就是用于接收调用者传递过来的实参数据,出了函数,该变量就不能使用了。在C语言中,称一个变量的作用范围为“变量的作用域”。由于每个变量都有自己的作用域,因此在不同函数内说明的局部变量就可以使用相同的变量名,类型也可以不一样。它们不会因为名字相同而互相干扰。C语言规定,在一个源程序文件中,当所说明的全局变量与某个函数内说明的局部变量同名时,那么在该局部

6、变量的作用域,全局变量就不起作用。2.自动变量、静态变量与变量的生命期(1)在函数内说明一个变量(它当然是一个局部变量)时,若将其存储类型说成是auto,或没有给出它的存储类型,那么这个变量是自动型的。这时,只有在调用函数而遇到这种变量时,C语言才在动态存储区里为它们分配所需要的存储区,函数调用完毕,就立即收回它们占用的存储区。从这样的处理过程可以看出,每次调用函数,都必须重新为自动型变量分配存储区,重新进行初始化。(2)在函数内说明一个变量(它当然是一个局部变量)时,若将其存储类型说成是static,那么这个变量是静态型的。对于静态变量,C语言是编译时在静态存储区里为它们分配所需要的

7、存储区,即使函数调用完毕,也不收回分配给它的存储区,直至程序运行结束。如果程序中说明静态变量时对它做了初始化,那么这种初始化只做一次,下次再调用就只是沿用上次调用后的取值,不再初始化了。在C语言中,称一个变量说明后它存在的时间区间为“变量的生命期”。对于自动变量,它只在其作用域里存在,出了作用域就不存在了。因此自动变量的生命期就是它的作用域;对于静态变量,在它的作用域里存在,出了作用域它仍然存在(只是不能使用)。因此静态变量的生命期比它的作用域

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。