PI-ITBA / 2024_02

Consultas 2C 2024
4 stars 0 forks source link

Duda teórica #14

Open ssommerr opened 2 months ago

ssommerr commented 2 months ago

Hola, como estan? Escribia para consultar por el primer ejercicio de la 5ta guia. int a,b; void local ( void );

int main ( void ) {
a = 2; b = 3;

local(); printf(" a vale : %d\t b vale %d\n", a, b ); return 0; }

void local ( void ) {
int a;

a = -5;
b = 4;

return ;

} Este es el ejercicio, y pregunta que devuelve. En este caso devuelve a=2 y b=4, en el caso que cambie el int de lugar devuelve a=-5 y b=3. No entiendo nada de lo que esta pasando, esto es debdio a que en el return no le metieron nada? O porque pasa esto? Y si cambio el int a,b de lugar porque altera el resultado?

marcelogarberoglio commented 2 months ago

El programa crea dos variables globales a y b. Pero la función local crea otra variable a, que es distinta a la global, por lo que la signación a=-5 no afecta a la variable global que se usa en main. En cambio sí afecta el cambio a la variable b, que es la misma que se usa en main, por eso imprime a vale: 2, b vale 4. Así estaría la memoria cuando se ejecuta la función local image

marcelogarberoglio commented 2 months ago

Y así luego ejecutar las asignaciones en local image

ssommerr commented 2 months ago

Ahh, okey! muchisimas gracias!!