1. 作用域
全局变量:
-
定义位置:在所有函数之外定义。
-
作用域:全局变量在(程序块)整个程序范围内都可访问,包括所有函数。
局部变量:
-
定义位置:在函数内部或代码块内部定义。
-
作用域:局部变量仅在定义它的函数或代码块内有效,外部无法访问。
2. 生命周期
全局变量:
-
生命周期:全局变量的生命周期从程序启动开始,到程序结束结束。
-
存储位置:存储在全局数据区(或静态数据区),即使在函数调用结束后,全局变量仍然存在。
局部变量:
-
生命周期:局部变量的生命周期仅在定义它的函数或代码块({}包裹的部分)执行期间有效。
-
存储位置:局部变量通常存储在栈上,函数调用结束后,局部变量被销毁,占用的内存被释放。