c语言 第七章.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计 - 第5章 函数 第七章 函 数 目 录 函数概述 函数定义的一般形式 函数的调用、参数和返回值 局部变量和全局变量 变量的存储类型 内部函数和外部函数 函数 (Function) C语言用函数实现程序模块化 一个程序由一个或多个源程序文件组成 一个源程序文件由一个或多个函数组成 C程序的执行从main函数开始,并回到main函数结束 函数之间可以相互调用,或调用自身 不能调用main函数 函数之间相互独立,不存在从属关系 函数定义的一般形式 函数定义形式 返回类型 函数名(形式参数) 形式参数说明 { 变量定义 语句 } 返回类型、参数、函数体内容都可没有 dummy(){} /* does nothing returns nothing */ main() {int a,b,c; scanf(“%d,%d”,a,b); c=max(a,b); printf(“max=%d”,c); } 函数定义举例 函数的调用、参数和返回值 函数的参数 形参和实参 参数传递 函数的返回值 函数的调用 函数调用的形式 函数的声明和函数原型 函数的嵌套调用和递归调用 函数的参数 (Arguments) 形式参数和实际参数 形参:定义函数时,函数名后()中的参数 实参:调用函数时,函数名后()中的参数 实参可以是常量、变量、表达式、函数调用 实参和形参必须类型相同或赋值兼容, 个数相等 举例 int max(int x, int y)/*函数定义*/ { return xy?x:y; } max(a, 3); /*函数调用*/ 参数传递 实参对形参的数据传递是“单向值传递” 只能把实参的值传递给形参 不能把形参的值传递给实参 对形参的值所作的改变不能带回给实参 实参和形参是不同的变量 存放在不同的存储单元 具有不同的生存期和作用域 形参只有在调用时才占用内存中的存储单元,调用结束释放。 参数传递举例 return语句 形式 形式一:return; 形式二:return expression; 功能 函数返回语句 结束函数调用 如果需要,还可以带回函数返回值 函数的返回值 (Return Value) 返回值的说明 函数返回值的类型在函数定义中指定 函数返回值通过函数中的return语句获得 若函数无返回值,则可以没有return语句 return语句后的表达式类型,应与函数返回值类型相同,或可以兼容赋值;两者类型不同时,自动做类型转换 函数需要返回值时,若缺少return语句,或return语句未带返回值,则返回一个不确定值 函数的调用 一般形式 函数名(实参表列) 说明 即使没有实参,()也不能省略 多个实参之间用逗号分隔 实参与形参按顺序一一对应,类型应匹配 实参的求值顺序不确定,应避免对此敏感的调用形式 printf(%d,%d, i, i++); 函数调用的应用 函数语句 printf(%d\n, i); 函数表达式 c=max(a,b); 函数参数 max(max(a,b), min(c, d)) 说明 函数调用可以看作同返回类型的表达式使用 同时,函数调用还完成了函数中定义的操作 函数的嵌套调用 调用一个函数的过程中,调用另一函数 函数的递归调用 一个函数直接或间接的调用它自身 必须有一定的条件判断语句,使得递归调用能够终止 函数递归调用举例 Hanoi塔 解法 N=1时,Hanoi(1)易解 若Hanoi(N-1)可解,则Hanoi(N)易解 Step1. N-1个盘子,借助3,从1移至2 Step2. 把最大的盘子从1移至3 Step3. N-1个盘子,借助1,从2移至3 复杂度 移动次数:2N-1 N=64,移动次数~1.84467E+19 变量的作用域和生存期 作用域 变量有效的代码空间 变量在作用域才能被引用 变量可以分为局部变量和全局变量 生存期 变量有效的运行时间 变量在生存期内才存在 变量可以分为静态存储和动态存储 局部变量 (Local Variables) 局部变量 函数或复合语句内部定义的变量 说明 作用域为本函数或复合语句范围 不同函数内的局部变量可以重名,它们是不同的变量,作用域不同,不会相互干扰 函数形参也是局部变量的一种 若多个同名局部变量作用域重叠,则最内层复合语句中定义的局部变量有效 局部变量举例 (1) 局部变量举例 (2) 全局变量 (Global Variables) 全局变量(外部变量) 函数之外定义的变量 说明 作用域从变量定义处到本源程序文件结束 全局变量可以被本文件的函数所共用 增加函数间传递数据的渠道 若全局变量与局部变量重名,则局部变量在作用域内屏蔽全局变量 应限制使用过多全局变量

文档评论(0)

xuefei111 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档