全局变量和局部变量区别存储重名
Posted 做扎实的PHP开发者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全局变量和局部变量区别存储重名相关的知识,希望对你有一定的参考价值。
1.非静态全局变量
作用域:全局作用域,只需在一个源文件中定义,可作用于所有源文件(extends再次声明)
存在:内存的静态存储区中
2.非静态局本变量
作用域:只局部作用域,自动对象,只在函数执行期间存在,一次调用结束后,该变量被销毁,所占内存也被销毁
存在:栈
3.静态全局变量
作用域:全局作用域,若程序包含多个文件,它作用于定义它的文件中,不能作用在其他文件(即被static 修饰的具有文件作用域)
存在:内存的静态存储区中
4.静态局部变量
作用域:局部作用域,只被初始化一次,直到程序结束都一直存在,只对定义自己的函数体可见。
存在:内存的静态存储区中
5.重名的情况
全局与局部变量重名时,在定义局部变量的子程序内局部变量起作用,其他地方全局变量起作用。
以上是关于全局变量和局部变量区别存储重名的主要内容,如果未能解决你的问题,请参考以下文章
C语言局部变量与全局变量重名时的优先级问题(当局部变量和全局变量同时存在的时候,优先引用局部变量,而不去引用全局变量)