- 1、本文档共119页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章用函数实现模块化程序设计
7.5 函数的嵌套调用 C语言不能嵌套定义函数 ,但可以嵌套调用函数。 void f1( ) { …… int f2( ) {……} } 函数调用的过程 7.6 函数的递归调用 不要求掌握 7.7 数组作为函数参数 7.7.1数组元素作函数实参 7.7.2数组名作函数参数 7.7.3多维数组名作函数参数 7.7.1 数组元素作函数实参 性质与简单变量相同 单向传递,即“值传递”方式 7.7.2 数组名作函数参数 除了可以用数组元素作为函数参数外,还可以用数组名作函数参数(包括实参和形参) 用数组元素作实参时,向形参变量传递的是数组元素的值 用数组名作函数实参时,向形参 传递的是数组首元素的地址 7.7 数组作为函数参数 比较: 数组元素作函数参数: 将实参变量的值复制给形参变量, 实参的值不因形参的值改变而改变。 数组名作函数参数: 向形参传递的是数组首元素的地址 改变形参数组元素的值将同时改变实参数组元素 的值。 7.7.3 多维数组作函数参数 例7.13 有一个3×4的矩阵,求所有元素中的最大值。 解题思路:先使变量max的初值等于矩阵中第一个元素的值,然后将矩阵中各个元素的值与max相比,每次比较后都把“大者”存放在max中,全部元素比较完后,max 的值就是所有元素的最大值。 练习 求矩形的周长和面积。要求在主函数中输入矩形的长和宽,调用一个函数求周长,调用另一个函数求面积。在主函数中输出结果。 7.8 局部变量和全局变量 变量的作用域: 每个变量的有效作用范围 程序中可以引用该变量的区域。 局部变量 全局变量 7.8.1 局部变量 在函数体内定义 仅在定义它的函数体内可见 形式参数也是局部变量 7.8.1 局部变量 在函数体内定义。 仅在定义它的函数体内可见。 形式参数也是局部变量。 不会被自动初始化为0 不同函数中可以使用同名的变量,它们代表不同的对象,互不干扰。 函数退出时,局部变量随之消失。 7.8.2 全局变量 在函数之外定义 自动初始化为 0 在定义之后,整个程序可用。 7.9 变量的存储类别7.9.1动态存储方式和静态存储方式 静态存储方式 在整个程序开始时分配存储单元,整个程序执行完才释放。 动态存储方式 在函数调用开始时分配存储单元,函数结束时就释放。 7.9.2 局部变量的存储类别 1. 自动变量(auto变量) 局部变量和函数的参数都是自动变量 。 自动变量属于动态存储方式,函数调用时给变量分配存储空间,调用结束后自动释放这些空间。 可用关键字auto 进行声明。 自动存储类别是变量的默认状态。 2. 静态局部变量(static局部变量) 局部变量前加上 static 关键字,成为静态局部变量。 程序开始运行时自动初始化为0,并仅作一次初始化 属于静态存储方式,整个程序开始执行时分配和初始化存储空间,整个程序执行完才释放。 在函数调用结束后不消失,而保留原值。 其余性质与局部变量相同 以下章节均不要求掌握 7.9.3 全局变量的存储类别 7.9.4 存储类别小结 7.10 关于变量的声明和定义 7.11 内部函数和外部函数 小结 函数的定义: 类型 函数名 ( 形式参数表 ) {语句序列 } 函数的参数是函数与外部通信的接口。 变量作为形式参数单向值传递。 数组名作为形式参数地址传递。 return语句使函数返回一个表达式的值。 函数的调用:函数名 (实际参数表 ) 已经定义的函数可以互相调用,main函数是程序的启动函数。 7.7.1数组元素作函数实参 例7.9 输入10个数,要求输出其中值最大的元素和该数是第几个数。 7.7.1数组元素作函数实参 解题思路: 定义数组a,用来存放10个数 设计函数max,用来求两个数中的大者 在主函数中定义变量m,初值为a[0],每次调用max函数后的返回值存放在m中 用“打擂台”算法,依次将数组元素a[1]到a[9]与m比较,最后得到的m值就是10个数中的最大者 int max_value(int array[][4]) { int i,j,max; max = array[0][0]; for (i=0;i3;i++) for(j=0;j4;j++) if (array[i][j]max) max = array[i][j]; return (max); } 要与实参数组第二维大小相同 // Example # include stdio.h void func ( ) ; int main ( ) { int n ;
文档评论(0)