C20-函数(三).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文档。上传文档
查看更多
C20-函数(三)

函数(三) 数组名作为函数参数 数组名做为函数参数的规则 如果形参是数组形式,则实参必须是实际的数组名;如果实参是数组名,则形参可以是同样维数的数组名或指针。 要在主调函数和被调函数中分别定义数组。 实参数组和形参数组必须类型相同,形参数组可以不指明长度 。 数组名作为函数参数 数组名作为函数参数案例: 实例20-1:数组排序----简单选择排序 数组名作为函数参数 数组名作为函数参数案例: 实例20-1:数组排序----简单选择排序 数组名作为函数参数 二维数组名作为函数参数 使用二维数组名作为函数的实参和形参,在被调函数中对形参数组定义时可以指定每一维的大小,也可以省略第一维的大小说明。 由于实参代表了数组名,是“地址传递”,二维数组在内存中是按行优先存储,并不真正区分行与列;在形参中,就必须指明列的个数,才能保证实参数组与形参数组中的数据一一对应。因此,形参数组中第二维的长度是不能省略的。 数组名作为函数参数 二维数组名作为函数参数 实例20-2:有一个3X4的矩阵,求其中的最大元素。 变量的作用域 局部变量的定义 在函数内部定义的变量,称为局部变量。 变量的作用域 局部变量的说明: 主函数中定义的变量也是只能在主函数中有效,而不因为在主函数中定义而在整个文件或程序中有效。 形参也是局部变量,其他函数不能调用。? 变量的作用域 局部变量的说明: 不同函数中可以使用相同名字的变量,它们代表不同的对象,互不干扰。 变量的作用域 局部变量的说明: 在一个函数内部的复合语句中也可以定义变量,这些变量只在本复合语句中有效。这种复合语句也称为“分程序”或“程序块”。 变量的作用域 全局变量 在函数之外定义的变量称为外部变量,又称全局变量。 变量的作用域 说明: 外部变量的作用域是从定义点到本文件结束。 实例20-4: 变量的作用域 说明: 如果定义点之前的函数需要引用这些外部变量时,需要在函数内对被引用的外部变量进行说明 变量的作用域 说明: 全局变量增加了函数间数据联系的渠道。 全局变量使函数依赖这些外部变量,因而使得这些函数的独立性降低。 从模块化程序设计的观点来看这是不利的,因此不是非用不可时,不要使用外部变量。 变量的存储方式和生存期 变量的存储方式: 静态存储方式:程序运行期间分配固定存储空间 动态存储:程序运行期间根据需要动态分配存储空间 内存用户区 变量的存储方式和生存期 变量的生存期 静态变量:从程序开始执行到程序结束 动态变量:从包含该变量定义的函数开始执行至函数执行结束 变量的存储方式和生存期 数据存储类别 自动变量: 函数中的局部变量,如不专门声明为static存储类别,都是动态地分配存储空间的,数据存储在动态存储区中。 函数中的形参和在函数中定义的变量(包括在复合语句中定义的变量),都属此类。 在调用该函数时系统会给它们分配存储空间,在函数调用结束时就自动释放这些存储空间。 因此这类局部变量称为自动变量。 变量的存储方式和生存期 数据存储类别 自动变量: 自动变量用关键字auto作存储类别的声明。 例如: 关键字auto可以省略,此时默认为“自动存储类别”,它属于动态存储方式。函数中大多数变量属于自动变量。 变量的存储方式和生存期 数据存储类别 静态变量: 有时希望函数中的局部变量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次该函数调用时,该变量已有值,就是上一次函数调用结束时的值。 静态变量用关键字static作存储类别的声明。 变量的存储方式和生存期 数据存储类别 静态变量: 变量的存储方式和生存期 数据存储类别 静态变量: 静态局部变量属于静态存储类别,在静态存储区内分配存储单元。在程序整个运行期间都不释放。而自动变量(即动态局部变量)属于动态存储类别,占动态存储区空间而不占静态存储区空间,函数调用结束后即释放。 变量的存储方式和生存期 数据存储类别 静态变量: 对静态局部变量是在编译时赋初值的,即只赋初值一次,在程序运行时它已有初值。以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。而对自动变量赋初值,不是在编译时进行的,而是在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句。 变量的存储方式和生存期 数据存储类别 静态变量: 变量的存储方式和生存期 数据存储类别 静态变量: 如在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。而对自动变量来说,如果不赋初值则它的值是一个不确定的值。这是由于每次函数调用结束后存储单元已释放,下次调用时又重新另分配存储单元,而所分配的单元中的值是不确定的。 变量的存储方式和生存期 数据存储类别 静态变量

文档评论(0)

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

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

1亿VIP精品文档

相关文档