C语言程序设计 作者 许薇 武青海 第六章2.pptVIP

C语言程序设计 作者 许薇 武青海 第六章2.ppt

  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文档。上传文档
查看更多
j 第六章 函数 信息工程学院 6.6 局部变量和全局变量 6.6.1 局部变量 局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内,离开该函数后再使用这种变量是非法的。 例如: int f1(int a) /*函数f1*/ { int b,c; … } a,b,c有效 int f2(int x) /*函数f2*/ { int y,z; … } x,y,z有效 main() { int m,n; … } m,n有效 在函数f1内定义了3个变量,a为形参,b、c为一般变量。在f1的范围内a、b、c有效,或者说a、b、c变量的作用域限于f1内。同理,x、y、z的作用域限于f2内。m、n的作用域限于main(?)函数内。关于局部变量的作用域还要说明以下几点。 (1)主函数中定义的变量也只能在主函数中使用,不能在其他函数中使用。同时,主函数中也不能使用其他函数中定义的变量,因为主函数也是一个函数,它与其他函数是平行关系,这一点是与其他语言不同的,应予以注意。 (2)形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。 (3)允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。例如,在前例中,形参和实参的变量名都为n,是完全允许的。 (4)在复合语句中也可定义变量,其作用域只在复合语句范围内。 6.6.2 全局变量 全局变量也称为外部变量,它是在函数外部定义的变量。全局变量不属于哪一个函数,它属于一个源程序文件,其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。 只有在函数内经过说明的全局变量才能使用。全局变量的说明符为extern。但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。 例如: int a,b; /*外部变量*/ void f1() /*函数f1*/ { … } float x,y; /*外部变量*/ int fz() /*函数fz*/ { … } main() /*主函数*/ { … } 从上例可以看出a、b、x、y都是在函数外部定义的外部变量,都是全局变量。但x、y定义在函数f1之后,而在f1内又无对x、y的说明,所以它们在f1内无效。a、b定义在源程序最前面,因此在f1、f2及main内不加说明也可使用。 外部变量与局部变量同名。 #includestdio.h int a=3,b=5; /*a,b为外部变量*/ int max(int a,int b) /*a,b为局部变量*/ { int c; c=ab?a:b; return(c); } main() { int a=8; printf(%d\n,max(a,b)); } 运行结果: 8 如果同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量被“屏蔽”,即它不起作用。 (3)如果外部变量在文件开头定义,则在整个文件范围内都可以使用该外部变量,如果不在文件开头定义,按上面规定作用范围只限于定义点到文件终了。如果在定义点之前的函数想引用该外部变量,则应该在该函数中用关键字extern作“外部变量说明”,表示该变量在函数的外部定义,在函数内部可以使用它们。 (4)如果在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用。 【例6-10】 #includestdio.h int max(int x,int y) /*定义max函数*/ { int z; z=xy?x:y; return(z); } main() { extern int a,b; /*外部变量说明*/ printf(%d,max(a,b)); } int a=13; int b=-8; /*外部变量定义*/ 运行结果: 13 【例6-11】 #includestdio.h int a=3,b=5; /*a,b为外部变量,a,b作用范围*/ int max(int a,int b) { int c; /*形参a,b作用范围*/ c=ab?a:b; return (c); } main()

文档评论(0)

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

1亿VIP精品文档

相关文档