局部变量

维基百科,自由的百科全书
跳转至: 导航搜索

计算机科学中,局部变量是拥有局部作用域变量。这样的变量只能由声明它的函数中访问。在仅有两层可见性的程序设计语言中,局部变量对应全局变量;另一方面,许多类ALGOL语言允许任意多层的嵌套函数,各自拥有私有变量、函数、常量和类型。

大多数程序设计语言中,局部变量是直接存储在调用堆栈上的自动变量。即递归函数调用自己时,局部变量的每一份实例都在不同的地址空间中。于是在当前作用域对变量的声明、写入、读取都不会在其被声明的函数外产生副作用

静态局部变量[编辑]

静态局部变量是一类特殊的局部变量,在许多主流语言(C/C++Visual BasicJava等)中均有提供,允许在函数调用之间保持变量的值。这中情况下,对函数的递归调用同样也可以访问该(只有一份、静态分配的)变量。

可以认为全局函数中的静态局部变量是全局变量,因为它们的生命周期和程序相同。[1] 仅有的区别在于这些静态局部变量只可被一个函数访问。

参考资料[编辑]

  1. ^ Current C standardPDF (3.61 MB) (截至2009年  (2009-Missing required parameter 1=month!)). 注意第32页章节 6.2.4《Storage durations of objects》。