什么是全局变量?

2024年8月30日 | 阅读4分钟

变量是分配给程序可以控制的存储区域的名称。变量的类型指定了变量内存的大小和配置。

在变量中插入值的范围是在插入值之前计算的,因为在插入值之前必须决定变量的类型。

变量的作用域

变量的范围字面意思是变量的生命周期。它是一个变量有效或仍然存在的代码块。

在“a”函数内,我们声明了一个变量“poo”。该变量的作用域仅限于该函数内部,不能在函数外部使用。

在我们的编程中,我们可以在三个地方使用变量。

  • 在函数或块内部,则称为局部变量。
  • 如果在所有函数之外使用,则命名为全局变量。
  • 如果在函数参数定义中使用,则称为形式参数。

主要区别

  • 在函数内声明的变量称为局部变量,而在函数外声明的变量称为全局变量。
  • 另一方面,当函数开始执行时创建,当函数结束时消失;全局变量在执行开始时创建,当程序结束时消失。局部变量是创建的。
  • 局部变量不包含数据共享,而全局变量提供数据共享。
  • 局部变量存储在栈上,而全局变量由程序员存储在固定位置。
  • 对于局部变量,需要参数,而全局变量不需要传递。
参数局部全球
范围在函数内部。作用域在函数外部。
如果未初始化值,则给出垃圾值。如果未初始化值,则默认给出零。
生命周期在函数开始执行时创建,在函数终止时消失。在程序全局执行开始之前创建,在程序终止时消失。
数据共享不可能。可能。
参数必要不需要。
访问方式局部变量我们可以在整个程序中访问全局变量。
内存存储在栈上。在计算机分配的固定位置。

局部变量

局部变量在编程块或子程序中指定为声明的变量。局部变量在函数块执行之前存在。之后会自动消失。

局部变量示例

在这里,“x”和“y”是局部变量。

全局变量

在函数或代码块外部指定的变量称为全局变量。它具有全局范围,这意味着它在程序的整个生命周期内都保持相关性。因此,程序内的任何函数都可以访问它,除非它被遮蔽。

全局变量示例

在这里,“x”和“y”是全局变量。

使用全局变量的优点

  • 全局变量可以在程序的所有函数或模块中访问。
  • 我们只需要在模块外部声明一次全局变量。
  • 当用户需要一遍又一遍地访问程序中的相同数据时使用它。

使用全局变量的缺点

  • 声明了太多全局变量,它们将一直保留在内存中,直到程序执行完成。这可能会导致内存不足的问题。
  • 任何函数都可以更改数据。程序中编写的任何语句都会更改全局变量的值。在多任务环境中,这可能会产生不可预测的结果。
  • 如果由于代码重构而停用了全局变量,我们需要修改所有命名了它们的模块。

使用局部变量的优点

  • 变量的值在任务运行时保持不变是局部变量的基本含义。
  • 如果一个正在运行的变量被多个任务更改,那么结果可能是不可预测的。但是,将其声明为局部变量可以解决此问题。
  • 我们可以为不同函数中的变量分配相同的名称。
  • 当函数执行时,变量的内存会被释放。

局部变量的缺点

  • 局部变量的调试方法非常棘手。
  • 由于模块之间无法进行数据共享,因此需要频繁传递流行的 L-value 数据。
  • 它们的范围非常小。

什么更有用?

在任何语言的程序编写中,局部变量和全局变量同样重要。然而,大量的全局变量会占用大量内存。不必要的全局变量转换变得难以定义。谨慎起见,也应避免声明不必要的全局变量。