C语言,第8章 数组做函数参数.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语言,第8章 数组做函数参数

例如: int f(int a) { auto int b, c=3; …… } 说明:关键字“auto”可以省略不写(隐含指定为自动变量)。 例如: auto int b,c=3; int b,c=3; 三、 用static声明局部变量 静态局部变量: ⒈ 特点:函数中的局部变量的值在函数调用结束后不消失而 保留原值,即其所占用的存储单元不释放,在下一 次调用该函数时,该变量已有值,就是上一次函数 调用结束时的值。 ⒉ 声明:(用关键字static进行声明) static 类型标识符 变量名 例如: static float a; 例 考察静态局部变量的值。 #include stdio.h int f(int a) { int b = 0; static int c = 3; b = b + 1; c = c + 1; return (a + b + c); } int main(void) { int am = 2, i; for(i=0; i2; i++) { printf(“%d”, f(am)); } return 0; } 运行结果:? i=0 函数调用开始 函数调用结束 2 a 0 b 3 c 4 c 1 b 2 a 5 c 1 b 2 a 2 a 0 b 4 c i=1 函数调用开始 函数调用结束 关于静态局部变量的说明: ☆ 如在定义静态局部变量时不赋初值,编译时自动赋初值0 (对数值型数据)或空字符(对字符变量)。而对自动变 量来说,如果不赋初值,它的值是一个不确定的值。 ☆ 静态局部变量仍属于局部变量,其它函数不能引用它。 例如: 对静态局部变量: static int a; (a=0) static float b; (b=0.0) static char c; (c=‘\0’) 对自动变量: int a; (a的值不确定) float b; (b的值不确定) char c; (c的值不确定) 递归算法 一、递归求n! 递归算法的两个必要条件: (1)n的求解必然和前面n-1的求解,甚至n-2…的求解有联系,即是和前一(或前几)层之间存在递归规律 (2)递归到前面的某一层一定有确定的返回值或结束继续递归 递归的实现——栈(先进后出) 递归算法 二、递归的实际应用举例 汉诺塔游戏 第8讲 函 数_2 内 容 提 要 一维数组做函数参数 二维数组做函数参数 变量的作用域和存储类别(理论性知识) 进一步理解函数的递归调用和递归算法的应用 回顾上周内容 怎样编写自定义函数? 怎样调用自定义函数? 函数的格式 函数值类型 函数名(形式参数) { 函数体 } 说明: 如果函数没有函数值,函数值类型为void 如果函数有函数值,函数值类型为某种数据类型,函数值由return语句返回; 如果函数没有形式参数,表示为void 如果函数有形式参数,则每一个形参的说明均为: 数据类型 形参名 如果有多个形参,用逗号分隔。 函数的调用 要让计算机执行一个函数,就必须对函数进行调用。 说明: 调用库函数,需要在源程序最前面通过include预编译指令引入对应库函数的头文件 调用库函数的关键是遵守函数原型定义的约定 使用正确的函数名 传递的实参在数量,类型和顺序必须和形参一致 如果有函数值,注意返回值的类型 函数可以嵌套调用,递归调用,但是不能循环调用。 1、实参与形参的个数相等,类型一致; 2、实参可以是变量、表达式、常数,实参必须有确定的值; 3、在调用函数时,如果被调用函数的形参是变量,实参和形参分别拥有各自的内存空间,实参将值传递给对应的形参,形参值的改变不影响实参; 4、如果函数调用在前,函数定义在后,则在调用函数前必须对函数进行原型声明。 函数总结 1、输入的时候。 scanf(“%d ”, a); 2、数组名。 int a[10], b[10]; a = b; //错误,为什么 之前哪些地方涉及过“地址”这个概念 在调用函数时,如果被调函数的形参是一维数组,则对应的实参是一个内存单元的地址,实参数组和形

文档评论(0)

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

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档