Se refiere a las partes del código de un programa donde la variable existe, es decir que puede ser referenciada o reinicializada.
En programación de computadoras, una variable es una ubicación de memoria con nombre que un programador puede utilizar para representar datos en lugar de introducirlos directamente en un programa. El alcance de una variable es la región del código fuente del programa dentro del cual se representa ciertos datos. La mayoría de los lenguajes de programación soportan tanto variables locales como globales, sin embargo, existen algunas diferencias importantes entre los dos tipos.
Las variables locales sólo existen dentro de una función, una sección del código del programa que realiza una tarea específica, en la que se definen o declaran. Dejan de existir una vez que la función es ejecutada. Las variables locales se vuelven a crear cada vez que la función es llamada, o ejecutada. Estas variables no son accesibles para otras funciones o para el programa principal y, como tal, por lo general están implementados utilizando un tipo especial de estructura de datos, conocido como pila.
Las variables globales son declaradas en el cuerpo principal del código fuente del programa, fuera de todas las funciones, y por lo tanto existen en cualquier parte del código, incluso dentro de las funciones. Las variables globales no se vuelven a crear cada vez que una función en particular es llamada. Los programas suelen utilizar variables globales para almacenar datos que son procesados por muchas funciones diferentes. Un programa de edición de texto simple, por ejemplo, puede cargar el contenido del archivo en que se está trabajando en una variable global.
El uso de variables globales no es aconsejable a pesar de que aparentemente nos parezca muy útil, esto se debe a varias razones fundamentales:
Legibilidad menor.
Nos condiciona en muchos casos que el programa sólo sirva para un conjunto de casos determinados.
El uso indiscriminado de variables globales produce efectos colaterales. Esto sucede cuando existe una alteración no deseada del contenido de una variable global dentro de una función, bien por invocación, bien por olvidar definir en la función una variable local o un parámetro formal con ese nombre. La corrección de dichos errores puede ser muy ardua.
Atenta contra uno de los principios de la programación, la modularidad. El bajo acoplamiento supone no compartir espacios de memoria con otras funciones, y potenciar el paso de información (llamadas) para que la función trate la información localmente.