Alcance variable en C ++

Un alcance es una región del programa y, en términos generales, hay tres lugares donde se pueden declarar variables:

  • Dentro de una función o un bloque que se llama variables locales,

  • En la definición de parámetros de función lo que se denomina parámetros formales.

  • Fuera de todas las funciones que se llaman variables globales.

Aprenderemos qué es una función y su parámetro en los siguientes capítulos. Aquí expliquemos qué son las variables locales y globales.

Variables locales

Las variables que se declaran dentro de una función o bloque son variables locales. Solo pueden ser utilizados por declaraciones que están dentro de esa función o bloque de código. Las variables locales no son conocidas por funciones fuera de las suyas. A continuación se muestra el ejemplo que utiliza variables locales:

#include <iostream>
using namespace std;
 
int main () {
   // Local variable declaration:
   int a, b;
   int c;
 
   // actual initialization
   a = 10;
   b = 20;
   c = a + b;
 
   cout << c;
 
   return 0;
}

Variables globales

Las variables globales se definen fuera de todas las funciones, generalmente en la parte superior del programa. Las variables globales mantendrán su valor durante toda la vida útil de su programa.

Cualquier función puede acceder a una variable global. Es decir, una variable global está disponible para su uso en todo el programa después de su declaración. A continuación se muestra el ejemplo que utiliza variables globales y locales:

#include <iostream>
using namespace std;
 
// Global variable declaration:
int g;
 
int main () {
   // Local variable declaration:
   int a, b;
 
   // actual initialization
   a = 10;
   b = 20;
   g = a + b;
  
   cout << g;
 
   return 0;
}

Un programa puede tener el mismo nombre para variables locales y globales, pero el valor de la variable local dentro de una función tendrá preferencia. Por ejemplo

#include <iostream>
using namespace std;
 
// Global variable declaration:
int g = 20;
 
int main () {
   // Local variable declaration:
   int g = 10;
 
   cout << g;
 
   return 0;
}

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

10

Inicialización de variables locales y globales

Cuando se define una variable local, el sistema no la inicializa, debe inicializarla usted mismo. El sistema inicializa automáticamente las variables globales cuando las define de la siguiente manera:

Tipo de datos Inicializador
En t 0
carbonizarse '\ 0'
flotador 0
doble 0
puntero NULO

Es una buena práctica de programación inicializar las variables correctamente, de lo contrario, a veces el programa produciría resultados inesperados.