Hola y bienvenidos.
Vamos a ver a continuación el tema del cáncer de variables en el lenguaje C.
Están listos?
Vamos.
Bien, ahora que ya hemos visto el tema de funciones, podemos empezar a entender a más detalle otros
temas.
Por ejemplo, el tema que vamos a ver a continuación, que es el alcance de variables.
El alcance de variables básicamente es el tiempo de duración que va a tener una variable a lo largo
del tiempo de ejecución de nuestro programa.
Así que vamos a tener la línea de tiempo y recordemos que en primer lugar, vamos a tener la ejecución
de nuestro método principal.
Así que en primer lugar, se ejecuta nuestro método main, la función principal.
Y por ejemplo, podríamos tener alguna otra función, en este caso la función externa que se va a mandar
a llamar dentro de la función principal.
Ahora, como ejemplo, vamos a definir una variable dentro de nuestra función principal.
Puede ser cualquier variable.
En este caso definimos una variable llamada A de tipo entero y le asignamos el valor de diez.
Aquí lo interesante es por cuánto tiempo vamos a poder acceder a esta variable y lo interesante es que
esta variable la vamos a poder acceder hasta que termine de ejecutarse nuestro método principal.
Así que una vez que se crea en memoria, entonces, hasta que termine de ejecutarse el método principal,
vamos a tener acceso a esta variable.
Pero qué sucede ahora?
Si definimos una variable dentro de una función más externa?
Así que en este caso tenemos nuestro método principal.
Esta variable está disponible hasta el final del programa, como hemos comentado, hasta que termina
de ejecutarse el método principal.
Y por otro lado, si mandamos a llamar nuestra función, entonces se pone en pausa la ejecución de nuestro
programa principal y se cede el control hacia la función externa.
Así que pasamos el control y en nuestra función podríamos tener lo siguiente Tenemos la definición de
nuestra función se empieza a ejecutar y podríamos tener, por ejemplo, la definición de alguna otra
variable.
Aquí lo interesante es que esta variable solamente va a estar disponible a partir de que se empieza
a ejecutar nuestra función.
Se crea en memoria esta variable y va a estar disponible hasta que termine de ejecutarse esta función.
Así que una vez que termine de ejecutarse nuestra función, esta variable se quita de la memoria, se
destruye y entonces ya no vamos a tener acceso a esa variable.
Así que si tuviéramos más líneas de código, terminamos de ejecutar nuestra función y esta variable
B va a estar disponible, como hemos comentado, hasta que termine de ejecutarse nuestra función.
Una vez que termina de ejecutarse nuestra función, se quita de memoria la variable B ya no está disponible
y se regresa el control a la función principal.
Y recordemos algo importante la variable b es una variable local al método a la función que hemos definido.
Así que en este caso la variable b se destruye al terminar de ejecutarse la función.
Posteriormente, una vez que termina de ejecutarse la función, regresamos el control a la función principal
y en este momento todavía sigue disponible la variable A, así que la variable A debido a que se ha
definido en nuestro programa principal, todavía está disponible para utilizarse.
Y entonces, cuando nos acercamos al final de nuestro programa, la variable A todavía sigue disponible
hasta que termine de ejecutarse nuestro programa principal y la variable a su vez también.
Recordemos que es una variable local al método principal.
Así que, como podemos observar, básicamente la definición de alcance de variables tiene que ver con
la duración del tiempo de una variable, si la podemos seguir accediendo o no, y todo esto va a depender
del bloque de código o la función donde se ha definido nuestra variable.
Si definimos una variable en el método principal, entonces va a estar disponible durante todo el tiempo
de ejecución del método principal.
Pero si definimos una variable dentro de un método, va a estar disponible solamente mientras esté ejecutando
dicho método.
Bien, así que hasta el alcance de variables.
Y vamos a ver un ejercicio para que todo esto quede más claro.
Continuamos en el siguiente vídeo.
Saludos.