Autor
|
Tema: Una duda muy simple (Leído 1,629 veces)
|
Bob1098
Desconectado
Mensajes: 87
|
Hola. Tengo una pregunta bastante simple, y es la siguiente: Cuando declaro una variable (por ejemplo un int) en un bucle for, esa variable esta solo disponible dentro de este bucle, pero una vez acaba el bucle la variable se queda en la memoria? En ese caso si por ejemplo hacemos uso de varios bucles en un programa con varios "int", estamos consumiendo más memoria que si usamos solo un int para todos los bucles no? Es una pregunta muy tonto, pero me gustaría saber la respuesta
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
|
Re:
« Respuesta #1 en: 7 Agosto 2014, 11:49 am » |
|
Está solo disponible dentro del bucle, y al salir de él, se libera la memoria. Igual que dn una función.
|
|
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
for ( int i=0; i < 10; i++ ) { int valor = i + 1; std::cout << valor << std::endl; }
En el ejemplo anterior hay dos variables, i y valor. - i existe de forma continuada durante toda la vida del bucle. Cuando el código sale del bucle la variable simplemente deja de existir y su memoria puede ser ocupada por otra variable... el mundo es así de cruel.
- valor existe únicamente dentro de cada iteración del bucle, es decir, durante la ejecución de este ejemplo se van a crear 10 variables "valor". Cada una de estas instancias se eliminará al terminar la iteración correspondiente.
Fuera del bucle, por tanto, no existirá ninguna de estas dos variables. Si accedieses a las posiciones de memoria donde estaban ubicadas puede que aún se mantenga el último valor que tenían dichas variables... pero la memoria no está reservada y, por tanto, no está asegurado que puedas recuperar dicho valor.
|
|
|
En línea
|
|
|
|
Bob1098
Desconectado
Mensajes: 87
|
Es decir, que resulta casi más practico utilizar vairables dentro del bucle que usar variables globales, me equivoco? Aunque en realidad se esta haciendo el mismo uso de memoria, pero he oído por ahí que es una costumbre muy mala usar variables globales si no es necesario. Gracias por las respuestas.
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Simplemente, usa cada cosa en su momento. Si sólo usarás el índice del bucle como contador DENTRO del bucle, pues se inicializa en el for. Si lo necesitas fuera, pues lo inicializas fuera. Como dato, te digo que puedes hacer esto: int main(){ int a=0; { int b=0; } }
Puedes poner cuando quieras un par de llaves. Las variables que haya dentro de las llaves, desaparecerán cuando se cierren.
|
|
|
En línea
|
|
|
|
Bob1098
Desconectado
Mensajes: 87
|
Simplemente, usa cada cosa en su momento. Si sólo usarás el índice del bucle como contador DENTRO del bucle, pues se inicializa en el for. Si lo necesitas fuera, pues lo inicializas fuera. Como dato, te digo que puedes hacer esto: int main(){ int a=0; { int b=0; } }
Puedes poner cuando quieras un par de llaves. Las variables que haya dentro de las llaves, desaparecerán cuando se cierren. Interesante, no sabia que se podía hacer eso. Supongo que ya he aprendido algo más sobre c++. Gracias por la respuesta
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Una duda simple
Programación Visual Basic
|
Jess_Kapria
|
2
|
3,454
|
27 Octubre 2006, 00:41 am
por Jess_Kapria
|
|
|
Duda simple.
PHP
|
NaSaRiD15
|
2
|
1,745
|
1 Septiembre 2008, 04:54 am
por SpiderNet
|
|
|
Duda simple
Scripting
|
soS_boludo
|
2
|
2,248
|
14 Noviembre 2008, 15:38 pm
por soS_boludo
|
|
|
Duda simple
Materiales y equipos
|
Carloscmc
|
0
|
1,992
|
11 Febrero 2009, 22:02 pm
por Carloscmc
|
|
|
Una duda simple
Programación C/C++
|
jairogon
|
3
|
2,367
|
22 Mayo 2010, 00:59 am
por Debci
|
|