C语言基础教程 教学课件 作者 张晓蕾 1_ 第6章 函 数 .ppt

C语言基础教程 教学课件 作者 张晓蕾 1_ 第6章 函 数 .ppt

ID:50043515

大小:258.00 KB

页数:44页

时间:2020-03-08

C语言基础教程 教学课件 作者 张晓蕾 1_ 第6章 函 数 .ppt_第1页
C语言基础教程 教学课件 作者 张晓蕾 1_ 第6章 函 数 .ppt_第2页
C语言基础教程 教学课件 作者 张晓蕾 1_ 第6章 函 数 .ppt_第3页
C语言基础教程 教学课件 作者 张晓蕾 1_ 第6章 函 数 .ppt_第4页
C语言基础教程 教学课件 作者 张晓蕾 1_ 第6章 函 数 .ppt_第5页
资源描述:

《C语言基础教程 教学课件 作者 张晓蕾 1_ 第6章 函 数 .ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章函数数值比较6.1函数的参数6.2函数嵌套与递归6.3C语言的库函数6.6main函数的参数6.5变量的作用域与存储类型6.46.1数值比较6.1.1函数的定义1.函数定义函数定义通常由两部分组成:函数首部与函数体。函数的一般定义如下:类型函数名(形参列表)/*函数首部*/{变量声明/*函数体*/语句}2.定义函数的注意事项函数定义不能嵌套,函数定义应该在所有函数之外。可以在主调用函数之前,也可以在主调用函数之后。6.1.2函数的声明1.标准库函数的声明如被调用函数为C语言系统提供的标准库函数,可在程序的开头部分用#include进

2、行文件包含,在前面案例中所见过的printf()、sqrt()等函数,就属于这种形式。printf()函数包含于stdio.h文件,sqrt()函数包含于math.h文件,则在使用这两个函数之前,应在程序开头部分用下面的语句进行包含。#include"stdio.h"#include"math.h"2.自定义函数的声明如果是用户自定义函数,如函数与主调函数在同一程序文件中,在调用前用如下语句进行声明:类型函数名(实参列表);函数声明按其位置不同,作用范围也不同。(1)在所有函数外部进行声明(2)在函数内部进行声明在某一函数内声明的函数,则

3、仅可在声明它的函数内部被调用。6.1.3函数的调用1.在单行语句中调用2.在表达式中调用3.作为参数调用6.1.4函数的返回函数返回时,可以使用关键字return返回,也可以等函数执行到结尾的花括号时,自动返回主调函数。当函数需要有返回值时,就可以用关键字return返回。函数返回值类型要求与函数类型一致。如果函数无返回值,则须将函数类型定义为void(无值型)。返回语句中的表达式可以是有具体值的变量、常量或常量表达式。如果函数使用了“return表达式”形式返回数据,则表达式的数据类型应与函数类型一致,实际上,函数的数据类型也就是函数返

4、回值的数据类型。可以看到,对于int型的函数,其返回值也是int型。除了返回单个变量的值以外,还可以返回一个表达式的计算结果,但要求表达式的计算结果与函数类型相同。返回语句可用在需要返回的任一位置,也可以有多个返回语句,但只有一个在返回时被执行。函数在定义时也可以没有返回语句,这时程序执行到结尾的花括号时自动返回主调函数。函数可以没有参数或返回值,这种函数通常是实现某一结果可预期的功能,如打印、报警等。6.2函数的参数6.2.1函数参数概述函数之间的通信通常是由参数的传递来完成的。函数定义时的参数称为形参,函数调用时的参数称为实参。6.2

5、.2赋值调用赋值调用时,函数将实参的值复制一份,传递给形参,从而实现参数的传递,在程序运行过程中,形参的变化不会影响实参。需要注意的是,形参只在定义它的函数中存在,当从函数返回时,将释放形参所占的存储空间。6.2.3传址调用传址调用时,函数将把实参的地址传递给形参,通过对地址的内容进行访问,可以在被调函数中对该地址内容进行调用和修改。由于实参和形参都指向同一存储空间,因此这种改变将引起实参的内容改变。6.2.4数组参数与字符串参数1.数组参数的传递在对于数组为参数的函数进行设计时,通常需要传递给函数的多个参数。对于一维数组来说,一个参数是

6、按地址传递的数组名(即数组首地址),另一个参数则是数组的长度大小。在程序设计中,像排序、查找这样的算法时常会使用。用数组名作为函数参数时还应注意以下几点。①形参数组和实参数组的类型必须一致,否则将引起错误。②形参数组和实参数组的长度可以不相同,因为在调用时,只传送首地址而不检查形参数组的长度。当形参数组的长度与实参数组不一致时,虽不至于出现语法错误(编译能通过),但程序执行结果将与实际不符,这是应予以注意的。③在函数形参表中,允许不给出形参数组的长度,或用一个变量来表示数组元素的个数。④多维数组也可以作为函数的参数。在函数定义时对形参数组

7、可以指定每一维的长度,也可省去第一维的长度。2.字符串参数的传递字符串的处理也是程序设计中的常见内容,由于字符串本身都是使用数组或指针进行存储的,因此,字符串也能像数组一样依靠指针进行传递。与数组不同的是,字符串一般都不需要说明其长度,因为字符串都有一个特殊的符号’’来表示字符串的结束。6.3函数嵌套与递归6.3.1函数嵌套在函数调用中,允许在函数中调用另一个已声明的函数,这种在一个函数中调用另一个函数的用法称为函数的嵌套。6.3.2函数递归1.递归调用如果在函数的函数体内,又定义了语句来调用函数自身,这种调用称为直接递归调用。如果函

8、数a()中有语句调用函数b(),而函数b()中又有语句调用了函数a(),这种调用称为函数的间接递归调用。2.函数递归的条件一个有意义的递归算法应该满足以下条件。(1)可以将要解决的问题分解为一

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

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

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