浅析c语言中的变量

浅析c语言中的变量

ID:31011708

大小:105.00 KB

页数:5页

时间:2019-01-05

浅析c语言中的变量_第1页
浅析c语言中的变量_第2页
浅析c语言中的变量_第3页
浅析c语言中的变量_第4页
浅析c语言中的变量_第5页
资源描述:

《浅析c语言中的变量》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、浅析C语言中的变量  [摘要]:C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它是世界上最流行、使用最广泛的高级程序设计语言之一。在操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言。但是,由于C语言牵涉到的概念比较复杂,规则繁多,所以很多初学者感到困难,尤其在函数的局部变量、全局变量、递归调用、指针等的使用上更是一头雾水,本文就C语言的局部变量和全局变量的定义及其使用进行一些分析比较。  [关键词]:C语言局部变量全局变量作用域  一、

2、引言  C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它是世界上最流行、使用最广泛的高级程序设计语言之一。在操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言。在C语言函数的形参变量中,形参变量只在被调用期间才分配内存单元,调用结束立即释放。这一点表明形参变量只有在函数内才是有效的,离开该函数就不能再使用了。这种变量有效性的范围称变量的作用域。不仅对于形参变量,C语言中所有的量都有自己的作用域。变量说明的方式不同,其作用域也不同。C语言中

3、的变量,按作用域范围可分为两种,即局部变量和全局变量。  二、局部变量5  局部变量是指在程序中,只在特定过程或函数中可以访问的变量,是相对与全局变量而言的。  它有几个特征:作用域为定义它的函数;编译器不会对自动变量给予隐含的初值,故其值不确定,因此每次使用前必须明确的置初值;形参是自动变量,作用域仅限于相应函数内;自动变量随函数的引用而存在和消失,由一次调用到下一次调用之间不保持值。  关于局部变量的作用域要注意几点:主函数中定义的变量也只能在主函数中使用,不能在其它函数中使用。同时,主函数中也

4、不能使用其它函数中定义的变量。因为主函数也是一个函数,它与其它函数是平行关系。这一点是与其它语言不同的,应予以注意;形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量;允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆;在复合语句中也可定义变量,其作用域只在复合语句范围内。  三、全局变量  全局变量也称为外部变量,它是在函数外部定义的变量。它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局

5、变量说明。只有在函数内经过说明的全局变量才能使用。全局变量的说明符为extern。但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。  全局变量的优点有:地址固定、效率高;用起来方便。5  全局变量的缺点有:全局变量保存在静态存贮区,程序开始运行时为其分配内存,程序结束释放该内存。与局部变量的动态分配、动态释放相比,生存期比较长,因此过多的全局变量会占用较多的内存单元;全局变量破坏了函数的封装性能。前面的章节曾经讲过,函数象一个黑匣子,一般是通过函数参数和返回值进行输入输出,函数内部实现

6、相对独立。但函数中如果使用了全局变量,那么函数体内的语句就可以绕过函数参数和返回值进行存取,这种情况破坏了函数的独立性,使函数对全局变量产生依赖。同时,也降低了该函数的可移植性;全局变量使函数的代码可读性降低。由于多个函数都可能使用全局变量,函数执行时全局变量的值可能随时发生变化,对于程序的查错和调试都非常不利。  使用全局变量时应注意:全局变量是使程序简洁,在保持简洁的同时不能使程序的逻辑发生混乱。特别是程序中需要根据某些状态来决定程序的流程时;全局变量处理的内容最好具有唯一性;需要使用多个全局变

7、量时,最好把这些全局变量都封装在一个结构中;自定义的库中最好不要包括全局变量。  总之,全局变量可以使用,但是全局变量使用时应注意的是尽可能使其名字易于理解,而且不能太短,避免名字空间的污染;避免使用巨大对象的全局变量。  四、应用分析  intx=100;/*全局变量的定义*/  main()  {intx=100;/*局部变量,函数内有效*/  f();  ff();5  printf(“%d\n”,x);}  f()  {intx=500;/*局部变量,函数内有效*/  x+=100;  pr

8、intf(“%d\n”,x);}  ff()  {x+=100;/*使用全局变量*/  printf(“%d\n”,x);}  运行结果:600/*调用函数f()的结果*/  200/*调用函数ff()的结果*/  100/*调用函数main()的结果*/  以上是局部变量和全局变量的一个典型的应用,在这个程序中”intx=100”中的x是一个全局变量,一经定义编译系统为其分配固定的内存单元,在程序运行的自始至终都占用固定单元,所以在main()函数的最后一句中输出的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。