Hasta el momento solo hemos trabajado con variables locales, sin embargo también existe la posibilidad de declarar variables de alcance global.
Ámbito de una función
Se entiende como ámbito de una variable al alcance que tiene esta dentro del programa, es decir en donde está disponible para su uso.
El ámbito lo determina la «zona» en donde se declara la variable. De acuerdo a esta definición identificamos 2 tipos de ámbito: local y global
Variables locales
Una variable local es aquella que se define dentro de una función y solamente es visible (utilizable) en esta función.
Todas las funciones que se declaran dentro de la función main(), son locales a main y solo se reconocen dentro de ella, lo mismo ocurre cuando defines variables dentro de cualquier función personalizada.
Considera el siguiente ejemplo,
int main() { int edad; . . . }
int dias_mes(int mes) { int dias; . . . }
En el caso de la variable edad, ésta es local a main, lo que quiere decir en que entre los brackets de main, edad se podrá utilizar sin ningún problema, lo mismo podemos decir de la variable dias que se define dentro de la función dias_mes, dias lo podremos utilizar sin problema dentro del ámbito de dias_mes.
Si intentemos utilizar edad dentro de dias_mes obtendremos un error del compilador, indicando que no se encuentra la variable edad, lo mismo ocurre si utilizamos días dentro de main.
Variables Globales
Como su nombre sugiere, una variable global es visible en todo el programa, para main y todas las funciones que definamos dentro del mismo.
Las funciones se deben definir antes de la función main y de los prototipos de las funciones, y normalmente después de las directivas del preprocesador.
#include <iostream> //Definimos una variable global float pi = 3.141516; float circulo_perimetro(float ); float circulo_area(float ); int main() {
en el ejemplo anterior definimos la variable pi como variable global, por lo que su valor estará disponible en todas las funciones que se declaren, incluyendo a main.
Redefinición de variables globales
Una variable se puede redefinir dentro del ambiente local de una función, es decir la variable global puede iniciar con un valor inicial, pero podemos modificarla conforme sea necesario a lo largo del mismo.
El programa cpp_84_VariableGlobal1.cpp ilustra el uso de variables globales y su modificación mientras se utiliza el programa, como siempre, modifícalo para que te queden claros todos los conceptos.
// cpp_84_VariableGlobal1.cpp // Este programa forma parte del tutorial de introducción al lenguaje C++ // http://a.ehack.info/leguaje-c-introduccion/ // Se ilustra el paso de Arrays Multidimensionales como parámetros // en funciones en C++ // 2019, Por http://about.me/carlosgbr // Versión 1 // Compilado en https://www.onlinegdb.com/online_c++_compiler #include <iostream> using namespace std; //Definimos una variable global float pi = 3.141516; float circulo_perimetro(float ); float circulo_area(float ); int main() {double radio;
cout << "Dame el valor del Radio:" << "\n";
cin >> radio;
//Valor inicial de pi cout << "El valor de Pi es: " << pi << "\n";
cout << "El diámetro del cículo es: " << circulo_perimetro(radio) << "\n";
cout << "El área del cículo es: " << circulo_area(radio) << "\n\n";
pi = 3.14;
//Valor modificado de pi cout << "El valor de Pi es: " << pi << "\n";
//Cálculo de valores con pi global actualizada
cout << "El diámetro del cículo con pi = " << pi << " es: " << circulo_perimetro(radio) << "\n";
cout << "El área del círculo con pi = " << pi << " es: " << circulo_area(radio);
return 0;
} //Para calcular el perímetro del círculo se utiliza la fórmula //P = 2r * pi float circulo_perimetro(float radio) { //Descomenta esta sentencia para que veas el valor de pi que se utiliza //cout << "El valor de Pi es: " << pi << "\n"; return (2*radio) * pi; } //Para calcular el área del círculo se utiliza la fórmula //A = pi * r^2 float circulo_area(float radio) {//Descomenta esta sentencia para que veas el valor de pi que se utiliza //cout << "El valor de Pi es: " << pi << "\n";
return (radio*radio) * pi;
}
Como puedes apreciar, a mitad de la función main, modificamos el valor de pi = 3.14, valor que a partir de este punto se utiliza para realizar los nuevos cálculos .
Puedes ver una salida del programa en la siguiente imagen.
En las funciones que realizan los cálculos puedes apreciar una línea que está comentada, si la des comentas puedes ver el uso de pi que se utiliza dentro de la función
//Descomenta esta sentencia para que veas el valor de pi que se utiliza
Por supuesto, si lo queremos, también podemos modificar el valor de pi dentro de cada función, con valores distintos, haz la prueba y comprueba los resultados.
Para qué utilizar variables globales
Como en todo no hay recetas, son simples sugerencias, si tu programa no es muy complejo las puedes utilizar para definir variables que requieren un valor inicial susceptible que el usuario no lo defina o bien que es «natural» que cambie a lo largo del programa, como podría ser una contraseña por defecto, por ejemplo.
Constantes locales y Globales
El uso y ámbito de una constante se comporta de forma similar a las variables, por lo que puedes aplicar todo lo expuesto al caso de las variables. Por su puesto, debes considerar que el valor de una constante no es modificable y será siempre el mismo durante la ejecución del programa.
En nuestro ejemplo lo ideal es que pi sea constante, en nuestro caso la usamos como variable solo a efectos ilustrativos.
En este caso lo ideal es definir pi como constante global (dado que nunca cambia el valor de pi)
const float pi = 3.141516;
Por supuesto, hacer esta declaración nos impedirá modificar el valor de pi en cualquier lugar del programa. Debes considerar este hecho si cambias pi en el programa de ejemplo. Inténtalo, el cambio es muy simple, si quieres ver nuestra variante, revisa el código en nuestro repositorio de GitHub en cpp_85_ConstanteGlobal1.cpp
Si tienes alguna duda que no se responde en este documento, por favor plantea tu pregunta para poder responderte. O escribe directamente a soporte@ehack.mx
Referencias
- Por Roberto C. González para Ethical Hack
Fuente Imágenes
- «Todas las imágenes de esta sección»: by Nala Systems
Tutorial de C++ by eHack
- Volver al índice de temas del Tutorial de C++
- *** Durante todo este tutorial se repetirá: Este es un curso orientado a gente que nunca ha programado, incluso a gente ajena a la informática. Por esta razón el desarrollo puede parecer lento en ciertas etapas. Prefiero ser claro paso a paso, que hacer «pasos mágicos» como suele ocurrir cuando se enseña programación. *** También es buena idea leas esta entrada si te preguntas «Por qué C++»
Código Fuente
- El código fuente de toda la serie lo puedes descargar en nuestro repositorio en github busca los programas con el nombre del encabezado de cada programa.
- Código de esta sección
Variables globales y locales en C++, por Roberto C. González. Se distribuye bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional.
©2025, Ethical Hack, Todos los derechos reservados sobre el contenido propio.