Ámbito de las variables (scope)

🙎‍♂️ Binario Assembler 📆 23/10/2024

📁 Programación, C++ ⌛ 10 min de lectura

► Variables y constantes: Ámbito de las variables (scope)

El scope es el alcance de una variable, define la región del programa donde puede ser usado. Comprender el ámbito de la variables evita cometer errores como la colisión de nombres o el uso indebido de memoria.

Existen cuatro tipos de ámbitos de variables.

Variables de ámbito global

Son aquellas variables que se declaran fuera de todas las funciones. Son accesibles desde cualquier parte del programa, después de haber sido declarada.

Input:

Imágen de prueba

En este ejemplo la variable number se declara fuera de cualquier función, por lo que tiene un ámbito global. Esto significa que puede ser utilizada tanto en la función varGlobal() como en main().

Se debe tener mucho cuidado con las variables globales, porque son fáciles de modificar su valor.

🔳 Output

Llamada 1 a la funcion varGlobal( ) | Valor: 30
El valor inicial de number en main( ) es: 30
Llamada 2 a la funcion varGlobal( ) | Valor: 30
El valor modificado de number en main( ) ahora es: 100
Llamada 3 a la funcion varGlobal( ) | Valor: 100
                

Proceso exitoso!

Variables de ámbito local

Son aquellas que se declaran dentro de un bloque de código, como en una función que está dentro de un par de llaves '{ }'. Son accesibles dentro de ese bloque específico, una vez sale del bloque dejan de existir y su memoria se libera.

Input:

Imágen de prueba

Las variables name y age se encuentran definidas dentro del cuerpo de la función varLocal(), por lo que solo es accesible para dicha función cuando es invocada.

Si queremos acceder desde la función principal de forma directa, el compilador encontrará un error de scope, puesto que las variables name y age no se encuentran dentro del ámbito de la función main(). El único modo para que la función principal pueda acceder a las variables es llamando a la función varLocal().

🔳 Output

Gabriel tiene 20 años
                

Proceso exitoso!

Variables de ámbito de bloque

Es una extensión de la variable de ámbito local, puede aplicarse de cualquier par de llaves '{ }', incluyendo bloques internos dentro de funciones.

Input:

Imágen de prueba

La variable name está ubicado en el ámbito de un estructura condiconal if, esto quiere decir que su valor solo será visible dentro de la condicional mas no será accesible para la función principal.

Si se quiere acceder directamente del main(), el compilador mostrará un error de scope.

🔳 Output

Bienvenido Jamie
                

Proceso exitoso!

Variables de ámbito de función

Estas variables son declaradas dentro de una función y puede recibir parámetros. Dichas variables son locales a esa función y no son accesibles para otras funciones.

Input:

Imágen de prueba

Tenemos la función add() que recibe dos parámetros de tipo int que son a y b, estos parámetros son variables que tienen un alcance solo a dicha función.

La función main() invoca add() pasándo los valores de 5 y 3 (estos valores son asignados para a y b respectivamente), una vez llamada a la función add() esta se encarga de realizar una operación de suma y luego debe imprimir el resultado de la suma de los dos argumentos ingresados. Esto quiere decir que solo la función add() se encarga de trabajar con las variables y a la vez de procesar el resultado, mientras que la función principal solo hace el llamado.

Si en la función main() directamente intentamos sumar los valores de a y b, el compilador mostrará un mensaje de error de scope, debido a que a y b son variables que tienen un lazo directo solo con la función add().

🔳 Output

La suma es: 8
                

Proceso exitoso!

El scope o alcance de las variables, es esencial para escribir programas correctos y eficientes en C++, permite gestionar la visibilidad y el tiempo de vida de nuestras variables, previniendo errores comunes y manteniendo una mejor organización en el código.

Imagen del autor

Publicado por: Binario Assembler

Programador profesional, especialista en Backend y Frontend.

¡Este verano estudia con nosotros!

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.