Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/05/2011, 19:46
m_villaizan
 
Fecha de Ingreso: mayo-2011
Mensajes: 6
Antigüedad: 13 años
Puntos: 0
Pregunta Llaves dentro de funcion

Tengo una duda, cuando tengo una funcion como esta:

void main() {

int x, y,z;
x = 5;
y = 4;
z = x + y;

{
int y = 20;
}

cout << "x =" << x << " y =" << y << " z = " << z <<endl;

}

Yo se que el resultado al imprimir es que 'y' vale 4. Mi duda esta referida a la porcion de codigo que se ejecuta dentro de las llaves:

{
int y = 20;
}

Durante la ejecucion si se crea una nueva variable 'y' y si se le asigna el valor de 20, pero cuando termina 'y' sigue valiendo 4. Al abrir las llaves esto hace que esta porcion de codigo se ejcute pero que solo valga dentro de las llaves? y luego 'y' vuelve a tener el valor que le fue asignado fuera de las llaves? osea la 'y' declarada dentro de las llaves es otra 'y'? porque cuando hago el debug, la 'y' fuera de las llaves si cambia pero solo hasta terminar esa porcion de codigo, y luego vuelve a tener el valor de 4. Alguien me explica? Muchisimas gracias.