全局变量和局部变量区别、存储、重名

1.非静态全局变量

  作用域:全局作用域,只需在一个源文件中定义,可作用于所有源文件(extends再次声明)

  存在:内存的静态存储区中

2.非静态局本变量

  作用域:只局部作用域,自动对象,只在函数执行期间存在,一次调用结束后,该变量被销毁,所占内存也被销毁

  存在:栈

3.静态全局变量

  作用域:全局作用域,若程序包含多个文件,它作用于定义它的文件中,不能作用在其他文件(即被static 修饰的具有文件作用域)

  存在:内存的静态存储区中

4.静态局部变量

  作用域:局部作用域,只被初始化一次,直到程序结束都一直存在,只对定义自己的函数体可见。

  存在:内存的静态存储区中

5.重名的情况

  全局与局部变量重名时,在定义局部变量的子程序内局部变量起作用,其他地方全局变量起作用。

原文地址:https://www.cnblogs.com/muziyun1992/p/6688380.html