第7章函数第二部分.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 函数第二部分 软件成本、软件维护 Objectives主要内容 变量作用域:定义了能够使用该变量的程序内的位置。 变量的存储类型 引用传递 案例研究:交换数值 递归 常见编程错误和编译器错误 7.1变量的作用域 一、局部变量和全局变量 在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外是不能使用这些变量的。这称为“局部变量” 7.1 变量的作用域 一、局部变量和全局变量 在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外是不能使用这些变量的。这称为“局部变量” 变量的作用域 ⑴ 主函数main中定义的变量a,b,c只在主函数中有效,而不因为在主函数中定义而在整个文件或程序中有效,主函数也不能使用其他函数中定义的变量。 ⑵ 不同函数中可以使用相同名字的变量,它们代表不同的对象,互不干扰。它们在内存中占不同的单元,互不混淆。 ⑶ 形式参数也是局部变量。其他函数不能使用。 ⑷ 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效,这种复合语句也可称为“分程序”或“程序块”。 程序的编译单位是源程序文件: 一个源程序文件可以包含一个或多个函数。 在函数内定义的变量是局部变量, 在函数之外定义的变量称为外部变量,外部变量是全局变量。 全局变量可以为本文件中其他函数所共用,它的有效范围是从定义变量的位置开始到本源文件结束 #include stdio.h int u=2,v=3; int f1(int a,int b) { int c; c=a+b; return c; } float x=50,y=20; int max(int a,int b) { int c; if(ab) c=a; else c=b; return c; } main() { int a,b,c; scanf(%d,%d,a,b); c=max(a,b); printf(Max is %d\n,c); c=max(x,y); printf(Max is %d\n,c); } Variable Scope变量的作用域 在函数内部的变量是局部变量,在函数内是可用的。 作用域被定义为变量是有效的或已知的程序段。 变量的作用域 变量的作用域 在函数体内声明的变量。 这意味着同一个变量名能够在多个函数中被声明和使用。 一个有全局作用域的变量 是在任何函数之外声明的语句所创建的。可以供所有函数使用。 Variable Scope (变量的作用域) Variable Scope (变量的作用域) 程序7.1产生下列输出 From main(): firstnum = 10 From main(): secnum = 20 From valfun(): firstnum = 10 From valfun(): secnum = 30 From main() again: firstnum = 40 From main() again: secnum = 20 当一个函数正在执行时,只有这个变量的存储区和由这个函数建立的参数被自动访问。 Variable Scope (变量的作用域) 如果 一个对这个函数不是局部变量被这个函数使用,这个程序将为正确的名称搜索全局存储区。 Variable Scope (变量的作用域) 变量的作用域决不会影响变量的数据类型。 什么时候使用全局声明 符号常量和函数原型的作用域规则与变量的作用域相同。 当符号常量有一个通用的可适用于整个应用程序的意义时,在源代码文件的顶部声明它为全局的会产生好的编程意义。 #define PI 3.14159 什么时候使用全局声明 一个函数被一个源代码文件中的其他函数使用时,把函数原型编码成一个全局类型是有意义的。 这样可避免在每一个调用它的函数里重复函数原型声明。 全局变量的误用 除了符号常量和函数原型之外,几乎从来不使用全局变量。 全局变量破坏了C语言提供的使函数彼此独立和隔绝的安全保护。 全局变量的误用 在一个大程序中使用全局变量可能是灾难性。 因为全局变量能够被任何跟随其后的函数访问和改变,要找到一个错误的起源是一个消耗时间和让人灰心的任务。 7.2 变量的存储类型 除了被变量的作用域表示空间尺度之外,变量还有一个时间尺度 Called the variable’s “lifetime”生存期 变量的存储类型在它们被释放前保留在哪里和能够保留多久由变量的存储类型确定。 7.2、 Variable Stor

文档评论(0)

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

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

1亿VIP精品文档

相关文档