1.非静态全局变量
作用域:全局作用域,只需在一个源文件中定义,可作用于所有源文件(extends再次声明)
存在:内存的静态存储区中
2.非静态局本变量
作用域:只局部作用域,自动对象,只在函数执行期间存在,一次调用结束后,该变量被销毁,所占内存也被销毁
存在:栈
3.静态全局变量
作用域:全局作用域,若程序包含多个文件,它作用于定义它的文件中,不能作用在其他文件(即被static 修饰的具有文件作用域)
存在:内存的静态存储区中
4.静态局部变量
作用域:局部作用域,只被初始化一次,直到程序结束都一直存在,只对定义自己的函数体可见。
存在:内存的静态存储区中
5.重名的情况
全局与局部变量重名时,在定义局部变量的子程序内局部变量起作用,其他地方全局变量起作用。