C言语教学chap8.ppt_第1页
C言语教学chap8.ppt_第2页
C言语教学chap8.ppt_第3页
C言语教学chap8.ppt_第4页
C言语教学chap8.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八章函数 一 函数的引入二 C语言函数定义的两种形式形式1 类型名函数名 类型名形参1 类型名 形参2 类型名形参n 说明语句 执行语句 形式2 类型名函数名 形式参数表 形式参数说明 说明语句 执行语句 例如 intmax intx inty 等价于 intmax x y intx y 几点重要说明函数的定义在程序中都是平行的 即不允许在一个函数的内部再定义另一个函数函数名是用户自定义标识符 当函数值为整型时类型名可省略 当函数只完成某个操作而不返回值时 可用类型名void形参表中的形参是用户自定义标识符 没有参数时 圆括号不能省略 函数为无参函数 三 函数的参数几个定义函数调用调用函数被调函数形式参数 形参 实际参数 实参 main inta b c scanf d d 说明形参在定义时不占内存空间 只在调用函数时为其分配存储单元 且在调用结束后释放内存空间实参可以是常量 变量 表达式 但必须预先有确定值实参变量与形参变量发生 单向值传递 但当数组名作为实参进行传递时 传递的是数组的首地址 四 函数的返回值格式 return 表达式 或return表达式 说明一个函数中可以有多个return语句 当执行到某个return语句时 程序的控制流程返回到调用函数中 并将return语句中表达式的值作为函数值带回若没有return 就一直执行到函数体末尾 返回函数时 带回一个不确定值 所以若不带回函数值 应将函数定义为void类型return语句中表达式的类型应与函数值类型一致 若不一致时 则以函数值的类型为准 并由系统按赋值兼容的原则进行处理 五 函数调用格式函数名 实参表 说明实参表中 实参个数多于一个时 各参数之间用逗号分隔 实参个数 类型必须与对应的形参一致无参函数在调用时 没有参数传递 但圆括号不能省略 两种方式调用函数作为表达式出现在任何允许表达式出现的地方参与运算 此种调用只能用于函数有返回值的情况 如 c 2 max a b 作为一条独立的语句 完成特定操作 此种调用多用于对无参函数的调用 只完成某种操作 不返回任何值如 printstar 调用函数与被调用函数的相对位置关系先定义 后调用若被调函数的定义在调用函数之后出现 必须在调用函数中对被调函数加以说明 int char型函数除外格式 类型名被调用函数名 函数的调用可以嵌套函数的调用可以递归 参数传递的两种方式传值调用 函数调用时 实参的值一一对应的传递给形参 且发生 单向值传递 即使形参发生了值的变化也不会影响实参 传址调用 函数调用时 传递的是实参的地址 六 函数的嵌套调用嵌套调用定义 在一个函数的内部调用另一个函数 注意 函数不能嵌套定义 但能嵌套调用 七 函数的递归调用定义 在调用一个函数的过程中又直接或间接调用该函数本身分析递归实例求n 分析 数学公式可转化为 由此可见 用C语言实现此数学公式只能用if语句实现 且在n 0的分支中 f函数要嵌套调用自身 程序运行分析 main函数f 5 f 4 f 0 调用f 5 5 0调用f 4 4 0调用f 3 0 1程序结束返回返回 返回 由此可见 函数的递归调用实际上是一种特殊的函数嵌套调用 执行过程每次调用自己 保留上次的变量值 重新分配内存给这一次的变量每次调用自己后 保留上次的执行程序逐层返回使用注意一个问题转化为一个新问题 新问题的解法必须与旧问题一致 处理对象是规律性的递增或递减必须有一个明确的结束条件 即递归出口 否则出现无限递归 八 数组作为函数参数进行传递数组元素作为函数参数分析 与普通变量作为函数参数进行传递没有区别 发生单向值传递数组名作为函数参数例1 求10个学生成绩的平均分 10个成绩用数组存放分析 求10个数的平均分 不能引入10个形式参数 所以考虑用数组名作为函数参数进行传递 传递数组的首地址 floataverage b floatb 10 inti floataver sum 0 for i 0 i 10 i sum b i aver sum 10 return aver main floata 10 ave inti for i 0 i 10 i scanf f 分析 函数调用 ave average a floataverage b intb 10 将a的首地址传递给形参数组b 所以形参 实参共用内存单元 改进 引入一个参数用来传递数组元素个数 九 变量的存储类型全局变量与局部变量定义 局

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论