en c++ cuando trabajamos con varias funciones y cientos de variables se suele dar el caso que tenemos variables con el mismo nombre, por esto en algunos casos es confuso saber cual es la variable que estamos utilizando y por lo cual se cometen errores difíciles de detectar.
variable local
son todas aquellas declaradas dentro de una función, este tipo de variable tiene la característica de ser conocida solamente dentro de la función donde son declaradas, esto significa que pueden ser referenciada solo por dicha función.
el ciclo de vida de una variable local:
se crea la variable al momento de ejecutar la función a la que pertenece y son destruidas al finalizar la ejecución.
variable global
estas variables en contraste con las locales, se declaran fuera de todas las funciones antes de ser utilizadas por primera vez y están presentes durante todo el tiempo de ejecución del programa.
las variables globales se pueden manipular desde cualquier función.
algunos ejemplos de reflexión interesantes
ejemplo_1:
en este programa podemos observar la función principal(main) y dos funciones donde todas tienen una variable con el identificador < x > pero con un valor distinto.
si ejecutamos este programa podemos observar que aunque existan variables con el mismo nombre no aparece ningún tipo de error ya que las funciones siempre buscan la variable de manera local.
al ejecutar el programa la funcion_A escribirá:
el valor de x es:25
la funcion_B escribirá:
el valor de x es:2
ejemplo_2:
variable global y variable local con el mismo nombre
Agregar leyenda |
en el ejemplo_2 se observa una variable global llamada global y en la función imprimir aparece otra variable llamada global.
breve explicación
linea 4: declaramos una variable global llamada global y le asignamos el valor 12.
linea 6: prototipo de la función imprimir
linea 8-14: función main
linea 16-24: función imprimir la cual escribe en pantalla el valor de la variable global.
linea 20: se imprime en pantalla la variable local
linea 22: se imprime en pantalla la variable global
como se menciono anteriormente las funciones utilizan normalmente las variables locales, pero en algunos casos existe una variable global con el mismo nombre que una variable local y nosotros queremos utilizar la variable global entonces es necesario anteponer el operador de resolución de ámbito ( :: ).
el operador de resolución de ámbito se utiliza cuando hay ambigüedad como en el caso anterior, pero si en el ejemplo anterior en la función imprimir no se hubiera declarado una variable llamada global(linea 18) entonces no seria necesario utilizar el operador (::) ya que no habría ninguna confusión.
para repasar el tema acerca de funciones pulsa aquí
programa que calcula el factorial pulsa aquí.
comenta dudas o ayuda contribuyendo tu conocimiento del tema, Saludos.
Comentarios
Publicar un comentario