- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅析C语言中的变量.doc
浅析C语言中的变量
[摘 要]:C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它是世界上最流行、使用最广泛的高级程序设计语言之一。在操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言。但是,由于C语言牵涉到的概念比较复杂,规则繁多,所以很多初学者感到困难,尤其在函数的局部变量、全局变量、递归调用、指针等的使用上更是一头雾水,本文就C语言的局部变量和全局变量的定义及其使用进行一些分析比较。
[关键词]:C语言 局部变量 全局变量 作用域
一、引言
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它是世界上最流行、使用最广泛的高级程序设计语言之一。在操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言。在C语言函数的形参变量中,形参变量只在被调用期间才分配内存单元,调用结束立即释放。这一点表明形参变量只有在函数内才是有效的,离开该函数就不能再使用了。这种变量有效性的范围称变量的作用域。不仅对于形参变量,C语言中所有的量都有自己的作用域。变量说明的方式不同,其作用域也不同。C语言中的变量,按作用域范围可分为两种,即局部变量和全局变量。
二、局部变量
局部变量是指在程序中,只在特定过程或函数中可以访问的变量,是相对与全局变量而言的。
它有几个特征:作用域为定义它的函数;编译器不会对自动变量给予隐含的初值,故其值不确定,因此每次使用前必须明确的置初值;形参是自动变量,作用域仅限于相应函数内;自动变量随函数的引用而存在和消失,由一次调用到下一次调用之间不保持值。
关于局部变量的作用域要注意几点:主函数中定义的变量也只能在主函数中使用,不能在其它函数中使用。同时,主函数中也不能使用其它函数中定义的变量。因为主函数也是一个函数,它与其它函数是平行关系。这一点是与其它语言不同的,应予以注意;形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量;允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆;在复合语句中也可定义变量,其作用域只在复合语句范围内。
三、全局变量
全局变量也称为外部变量,它是在函数外部定义的变量。它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。只有在函数内经过说明的全局变量才能使用。全局变量的说明符为extern。但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。
全局变量的优点有:地址固定、效率高;用起来方便。
全局变量的缺点有:全局变量保存在静态存贮区,程序开始运行时为其分配内存,程序结束释放该内存。与局部变量的动态分配、动态释放相比,生存期比较长,因此过多的全局变量会占用较多的内存单元;全局变量破坏了函数的封装性能。前面的章节曾经讲过,函数象一个黑匣子,一般是通过函数参数和返回值进行输入输出,函数内部实现相对独立。但函数中如果使用了全局变量,那么函数体内的语句就可以绕过函数参数和返回值进行存取,这种情况破坏了函数的独立性,使函数对全局变量产生依赖。同时,也降低了该函数的可移植性;全局变量使函数的代码可读性降低。由于多个函数都可能使用全局变量,函数执行时全局变量的值可能随时发生变化,对于程序的查错和调试都非常不利。
使用全局变量时应注意:全局变量是使程序简洁,在保持简洁的同时不能使程序的逻辑发生混乱。特别是程序中需要根据某些状态来决定程序的流程时;全局变量处理的内容最好具有唯一性;需要使用多个全局变量时,最好把这些全局变量都封装在一个结构中;自定义的库中最好不要包括全局变量。
总之,全局变量可以使用,但是全局变量使用时应注意的是尽可能使其名字易于理解,而且不能太短,避免名字空间的污染;避免使用巨大对象的全局变量。
四、应用分析
int x=100;/*全局变量的定义*/
main( )
{ int x=100;/*局部变量,函数内有效*/
f( );
ff( );
printf(“%d\n”,x); }
f( )
{ int x=500;/*局部变量,函数内有效*/
x+=100;
printf(“%d\n”,x); }
ff( )
{ x+=100;/*使用全局变量*/
printf(“%d\n”,x); }
运行结果:600/*调用函数f( )的结果*/
200/*调用函数ff( )的结果*/
100/*调用函数main( )的结果*/
以上是局部变量和全局变量的一个典型的应用
文档评论(0)