014.- Curso C++ Básico. Duración y alcance de variables locales.
¿Cuál es el alcance y la vida útil de las variables locales en C++?
Introducción a las variables locales
- Se explora el concepto de variables locales en C++, que son aquellas definidas dentro del cuerpo de una función, en contraste con las variables globales.
- Las propiedades más destacadas de las variables locales se analizarán, comenzando por su instanciación al momento de la declaración.
Creación y destrucción de variables
- Los parámetros de funciones se convierten en variables al ser llamadas, inicializándose con los valores pasados como argumentos.
- La creación de estas variables ocurre durante el tiempo de ejecución, no en compilación; su ciclo vital comienza cuando se llama a la función.
- Al finalizar la ejecución de una función, todas las variables locales son destruidas en orden inverso a su creación.
Ciclo de vida y alcance
- La vida útil de las variables es una propiedad que se manifiesta solo durante el tiempo de ejecución.
- Se ilustra el ciclo vital mediante un ejemplo donde una variable local llamada
xes definida e inicializada al inicio del programamain.
Alcance y errores comunes
- El alcance determina desde dónde se puede acceder a un identificador; si está fuera del alcance, resulta en un error de compilación.
- El alcance comienza al definir la variable y termina al final del bloque donde fue definida.
- No se puede usar una variable antes del punto donde ha sido definida.
Ejemplo práctico sobre parámetros
- En un ejemplo más complejo, los parámetros
xeyson creados cuando se llama a la funciónsumar, siendo destructibles solo al finalizar dicha función.
- Al llamar a
sumar, los valores 5 y 6 son pasados como argumentos; esto crea e inicializa nuevas instancias para esos parámetros dentro del contexto local.
Conclusiones sobre múltiples llamadas
- Si la función
sumares llamada varias veces, sus parámetros serán creados y destruidos cada vez que sea invocada.
Alcance de las Variables en Funciones
Nombres de Variables y Alcance
- Aunque las funciones
mainysumartengan variables con el mismo nombre, estas son diferentes. El programa compila y se ejecuta correctamente a pesar de la coincidencia en los nombres.
- Las variables
xeydentro de la funciónsumarno están relacionadas con las variables que antes se llamabanayb. La única similitud es el nombre; su contexto es completamente distinto.
- El compilador distingue entre las variables gracias a sus alcances locales. Cada par de variables tiene un alcance limitado: unas son visibles solo dentro de
main, mientras que otras solo dentro desumar.