Recomendado, 2024

La Elección Del Editor

Diferencia entre variable local y global

Como comentamos anteriormente, una variable es un nombre, que se le da a una ubicación de memoria y se debe declarar antes de usarla. En C, todas las variables se declaran al inicio del programa. En C ++, las variables se pueden declarar, en cualquier momento, antes de que se usen en las instrucciones.

Las variables también se clasifican en variables 'locales' y 'globales', que es el tema principal de nuestra discusión. Aquí, la principal diferencia entre una variable local y una global es que una variable local se declara dentro de un bloque de funciones, donde la variable global se declara fuera de las funciones en el programa.

Estudiemos algunas diferencias más entre una variable local y una global, junto con una tabla de comparación.

Gráfica comparativa:

Bases para la comparaciónVariable localVariable global
DeclaraciónLas variables se declaran dentro de una función.Las variables se declaran fuera de cualquier función.
AlcanceDentro de una función, dentro de la cual están declarados.A lo largo del programa.
AccesoSe accede solo por las declaraciones, dentro de una función en la que se declaran.Accedido por cualquier declaración en todo el programa.
VidaSe crea cuando el bloque de funciones se ingresa y se destruye al salir.Permanece en existencia durante todo el tiempo que tu programa se está ejecutando.
AlmacenamientoLas variables locales se almacenan en la pila, a menos que se especifique.Almacenado en una ubicación fija decidida por un compilador.

Definición de variable local

Una variable local siempre se declara dentro de un bloque de función. En C, una variable local se declara al inicio de un bloque de código. En C ++, se pueden declarar en cualquier parte del bloque de código antes de su uso. Solo se puede acceder a las variables locales mediante las declaraciones escritas dentro de una función en la que se declara la variable local. Son seguros en el sentido de que no se puede acceder a ellos por ninguna otra función del mismo programa.

La variable local existe hasta que el bloque de la función está en ejecución y, por lo tanto, se destruye después de que la ejecución sale del bloque. Las variables locales pierden su contenido tan pronto como la ejecución abandona el bloque en el que se declaran.

La razón detrás de esto es que las variables locales se almacenan en la pila a menos que se especifique su almacenamiento especial. La pila es de naturaleza dinámica, y el cambio en la ubicación de la memoria conduce a la razón por la cual la variable local no mantiene su valor tan pronto como existe el bloque de una función.

Nota:
Sin embargo, hay una manera de retener el valor de una variable local, usando el modificador 'estático'.

Definición de variable global

Una variable global se declara fuera de todas las funciones presentes en un programa. A diferencia de las variables locales, se puede acceder a la variable global mediante cualquier función presente en un programa. Las variables globales no son muy confiables ya que su valor puede ser cambiado por cualquier función presente en el programa.

Las variables globales siguen existiendo hasta que todo el programa se ejecuta completamente. Las variables globales retienen sus valores hasta que el programa está en ejecución. El motivo es que se almacenan en una región de memoria fija, decidida por el compilador.

Una variable global es útil en situaciones en las que múltiples funciones acceden a los mismos datos. El uso de un gran número de variables globales puede ser problemático, ya que puede haber cambios no deseados en el valor de una variable global.

Diferencia clave entre la variable local y global.

  1. Las variables locales se denominan 'locales' porque solo las conocen las declaraciones escritas en una función dentro de la cual se declaran y ninguna otra función presente fuera de ese bloque de funciones. En el caso de la variable global, son conocidas por todas y cada una de las funciones presentes en un programa; Por lo tanto, se les llama 'global'.
  2. Las variables globales conservan su valor hasta que el programa se encuentra en la fase de ejecución, ya que se almacenan en una ubicación fija decidida por el compilador. Las variables locales se almacenan en la pila; por lo tanto, no conservan su valor ya que 'stack' es de naturaleza dinámica, pero el compilador puede ser dirigido a retener su valor, usando el modificador 'static'.
  3. Si una variable global y una local se declaran con el mismo nombre, todas las declaraciones de un bloque de código en el que se declara la variable local se referirán solo a una variable local y no causarán efecto a una variable global.
  4. Una variable local se destruye cuando el control del programa sale del bloque en el que se declara la variable local. Sin embargo, una variable global se destruye cuando se termina todo el programa.

Conclusión:

Las variables locales y globales se requieren por igual al escribir el programa. Sin embargo, declarar un gran número de variables globales podría ser problemático en un programa grande, ya que puede causar cambios no deseados en una variable global; y sería difícil identificar qué parte de un programa hizo ese cambio. Por lo tanto, uno debe evitar declarar variables globales innecesarias.

Top