第4章函数的应用解析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章函数的应用解析

§4.1.1 库函数 C++有一个预定义函数库,函数库中包含了不同功能的常用函数集合,如: cmath函数库中的不同数学函数的集合 sin //正弦函数 cos //余弦函数 log //一e为底的对数 tan //正切 sqrt //平方根 §4.2 函数的参数与返回值 函数参数 形式参数 定义有参函数时,函数名后面括号中的变量名称为形式参数(简称形参) 实际参数 调用函数时,函数名后面括号中的表达式称为实际参数(简称实参) 形参和实参比较 形参变量只有在被调用时才分配内存单元,以便接收从实参传送过来的数据。在调用结束后,会立即释放所分配的内存单元。 实参可以是常量、变量、表达式和函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值。 实参和形参在数量上和顺序上应一致,且类型相同或赋值兼容。 函数调用中发生的数据传送是单向的,即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 带默认形参值的函数 可以给形参指定默认值,调用函数时若不另行指定实参,系统会自动使用形参默认值。 要求: 定义多参函数的默认参数的顺序为自右到左 如: int mal(int a,int b=3,int c=6,int d=8); §4.3 函数的调用 §4.3.1 函数调用的形式 §4.3.2 函数的嵌套调用 §4.3.3 函数的递归调用 声明和调用举例 §4.3.2 函数的嵌套调用 C++中不允许函数的嵌套定义,但却允许函数的嵌套调用,即在调用一个函数的过程中又调用另一个函数. §4.6 变量的存储属性 每个变量都有两个属性,即数据类型和存储属性。 存储属性 是指变量在内存中的存储状态 变量在程序中的位置决定了变量的作用域,作用域又关系着变量的存储方式。 §4.6.1 变量的作用域 变量的作用域 任何变量都有其有效范围,这个有效范围称为变量的作用域。 在变量的作用域以外是不能访问这些变量的。 根据作用域的不同,可以将变量分为 局部变量 全局变量 局部变量 定义在函数内部和复合语句中的变量为局部变量,或内部变量。 在一个函数内部定义的变量,只在该函数范围内有效,其作用范围是从定义点处到函数末尾。 使用局部变量还应注意以下几点 函数的形式参数在函数被调用时建立,调用结束后即被释放,因此它的作用域只在函数内部有效; 主函数main()中定义的变量,只在主函数中有效,主函数也不能使用其他函数中定义的变量。 使用局部变量还应注意以下几点 不同函数中可以使用同名的变量,它们代表不同的对象,互不干扰。 在函数声明中出现的参数名,其作用范围只限于本行的括号内。 编译系统对函数声明中的变量名是忽略的,即使在调用函数时也没有为它们分配存储单元。 全局变量 在函数之外定义的变量是全局变量,又称外部变量。 全局变量在定义的同时初始化,若在程序运行中其值发生变化,全局变量将保留变化后的值; 其有效范围是从定义点开始到本源文件结束。 注意 在一个函数中既可以使用本函数中的局部变量,又可以使用有效的全局变量。 在同一个源文件中,若全局变量与局部变量同名,则在局部变量的作用范围内,全局变量被屏蔽。 同一源文件中的所有函数都可以引用全局变量的值,可以利用全局变量增加函数间数据传递的渠道。 避免使用全局变量 全局变量在程序执行的全部过程中一直占用存储单元,会造成内存资源的浪费。 全局变量的使用降低了函数的通用性。 §4.6.2 变量的存储类别 变量在内存中的存在时间叫做变量的生存期。 变量的生存期是由变量的存储方式决定的。 变量的存储方式 静态存储方式 是指程序运行期间,系统对变量分配的固定的存储空间,直到程序执行完毕后,系统才释放该空间。 动态存储方式 是指系统对变量动态地分配存储空间,当程序运行到变量的作用域之外,系统就会释放该变量所占空间。 内存中用户可以使用的区域 变量的存储类别 分为四种: 自动的(auto) [auto] 数据类型 变量名[=初值]; 静态的(static) static 数据类型 变量名[=初值]; 寄存器的(register) register 数据类型 变量名[=初值]; 外部的(extern) extern 数据类型 变量名; 静态的(static) 希望所定义的自动变量的值在函数调用结束后仍然被保留,自动变量的存储空间不被释放,此时可指定该局部变量为静态局部变量. 为静态变量赋初值是在编译时进行的,即只赋值一次,以后每次调用函数时不再重新赋值. 外部的(extern) 用extern声明全局变量,可以扩展全局变量的作用域,使其变成在全局变量作用域以外也可以使用的全局变量. 在同一文件中声明全局变量 §

文档评论(0)

4477704 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档