- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
71935第5讲函数
第5讲 函数 5.0 引言 程序模块化、功能划分 函数——实现某个特定功能的程序代码组合 5.1 C函数的定义方法 一、无参函数 格式: 类型名 函数名(){ 函数体 } 注:类型名为函数返回值的类型 5.1 C函数的定义方法 二、有参函数 格式: 类型名 函数名(形式参数表) 形式参数说明;{ 函数体 ; return(); } 例 5_1 5.1 C函数的定义方法 三、空函数 格式: 类型名 函数名() { } 作用: 模块化设计,预留模块 5.2 形参和实参 形参(形式参数)——定义时 实参(实在参数)——调用时 5.2 形参和实参 如: 5.2 形参和实参 注: 1、形参和实参的个数要相等 2、形参和实参的类型要匹配 若实参为变量或数组,则类型要完全相同 若实参为常量或表达式,则要保证它的值能自动地转换成形参类型 5.3 函数返回值 1、由return()语句将值返回 函数遇到return()语句就结束调用 2、若没有返回值,则可以在函数定义时设置返回值类型为void 如:void printstar() { printf(“*******\n”); } 5.4 函数调用 1、调用方式 (1)语句 如: printstar(); ——适用于无返回值函数 (2)表达式 如: x=max(a,b); (3)函数参数 如:x=max(a,max(b,c)); printf(“max=”,max(a,b)); 5.4 函数调用 2、函数说明 一般地,需要在主调函数中对被调函数的类型和名称进行说明 如:main() { int max(); 函数说明语句 …… } 两种情况下可以省略说明 被调函数在主调函数前 函数返回值为int 或char型 5.5 函数的嵌套调用 C语言中,函数不能嵌套定义,但可以嵌套调用 即:在某个函数的语句体中包含调用其他函数的语句 5.6 函数的递归调用 组成: 递归规律(公式) 终止条件 (临界状态,什么时候不再调用) 注意:程序执行过程! 例5_4 求n的阶乘 分析: n!=n*(n-1)!(n-1)!=(n-1)*(n-2)!(n-2)!=(n-2)*(n-3)!……2!=2*1!1!=1*0!0!=1 5.6 函数的递归调用 注意输出和调用语句的先后次序 严格按照调用过程中语句执行的先后顺序 5.7 数组作为函数的参数 数组元素作为参数(实参) 数组名作为参数 形参 实参 数组元素作为参数(实参) 对应的形式参数肯定是一个简单变量 数组名作为参数 如: 数组名作为参数 值传递 ∵数组名=首地址 ∴“值”=首地址 即:使得形参数组名=首地址 故:形参数组和实参数组在内存中指的是同一个位置开始的同一段空间 (只不过在不同的函数中采用不同的名称表示而已) 数组名作为参数 数组名作为参数 在形参数组中,可以省略一维数组元素个数的定义 5.8 全局变量和局部变量 局部变量(内部变量) ——在函数内定义的变量 ——在该函数内有效(可以使用) 全局变量(外部变量) ——在函数外定义的变量 ——从定义起,到该源文件结束的所有函数中都有效 注:main()函数中定义的变量是局部变量! 例:5_7 例:5_8 5.8 全局变量和局部变量 注1、形参变量是局部变量 注2、全局变量不是指在整个文件有效 注3、复合语句(专门用{ }括起的一段代码,不包括专用语句体)中可以定义变量,且仅在复合语句体内有效(书P169) 注4、函数返回值也可以通过全局变量返回,但尽量少用全局变量 (当函数需要将两个以上数据返回时,可以采用数组或全局变量实现) 同名变量 作用域相互独立 (无影响) 作用域发生嵌套(小范围优先) 5.9 动态存储变量和静态存储变量 动态(auto,缺省设置) ——变量的作用域 作用域结束时系统收回分配的空间 静态(static) ——定义起至文件运行结束 即使不在作用域,仍客观存在 寄存器变量(register) ——变量放在CPU的寄存器中,存取速度快 《C》P176 说明 5.9 动态存储变量和静态存储变量 static变量 可以用来申明局部变量,在函数内定义,只能在该函数中使用; ★在第一次分配空间及初始化,以后就不再分配,直到程序运行结束。 例5_9 执行过程: 5.10 外部变
您可能关注的文档
- 2009年土地估价基础知识练习(一).doc
- 2009年土地估价基础知识练习(二).doc
- 2009年中考英语真题分类汇编:补全句子,完成句子及表格阅读(下).doc
- 2009年中考英语真题分类汇编:阅读理解(下).doc
- 2009年高考时事政治选择题精选及解释.doc
- 2010中考化学试题预测(66张精美幻灯片).ppt
- 2010公考申论高分技巧:把握申论测试特点、领悟备考精髓.doc
- 2010初级会计职称会计实务模拟题.doc
- 2010六月联考数学试.doc
- 2010南非世界杯完整赛程表.doc
- 2025年关于进一步加强在建工程质量安全管理措施.pdf
- 2.6.1.2正弦定理课件-2023-2024学年高一下学期数学北师大版(2019)必修第二册.pptx
- 第二单元 走进花果山——做个加法表(课件)-2024-2025学年一年级上册数学青岛版(五四学制).pptx
- 2025年广东省深圳九年级中考数学一轮复习考点过关课件:方程与不等式的综合应用.pptx
- 10.3 物体的浮沉条件及应用 ----2024-2025学年人教版物理八年级下学期.pptx
- 课外文言文基础练习二:处世交友 2024-2025学年统编版语文八年级上册.docx
- 九月个人思想汇报(最新).docx
- 医药领域腐败问题集中整治工作方案(一) .docx
- 医院廉政教育工作计划(2篇) .docx
- 学用新思想奋进新时代心得体会一.docx
文档评论(0)