Trazado
1 Intercambio sin error #include void intercambio(int *, int *); /* prototipo */ main(){ int a=1,b=2; printf("a=%d b=%d\n",a,b); intercambio(&a,&b); /* llamada */ printf("a=%d b=%d\n",a,b); return 0; } void intercambio(int *x, int *y){ /* declaración formal */ int temp; temp=*x; // *x, *y son nombres alternativos de a y b *x=*y; *y=temp; }
Trazado (1) #include void intercambio(int *, int *); main(){ int a=1,b=2; printf("a=%d b=%d\n",a,b); intercambio(&a,&b); printf("a=%d b=%d\n",a,b); return 0; } void intercambio(int *x, int *y){ int temp; temp=*x; *x=*y; *y=temp; } Variables locales de main a b pantalla 1 2
Trazado (2) #include void intercambio(int *, int *); main(){ int a=1,b=2; printf("a=%d b=%d\n",a,b); intercambio(&a,&b); printf("a=%d b=%d\n",a,b); return 0; } void intercambio(int *x, int *y){ int temp; temp=*x; *x=*y; *y=temp; } Variables locales de main a b pantalla 1 2 a=1 b=2
Trazado (3) #include void intercambio(int *, int *); main(){ int a=1,b=2; printf("a=%d b=%d\n",a,b); intercambio(&a,&b); printf("a=%d b=%d\n",a,b); return 0; } void intercambio(int *x, int *y){ int temp; temp=*x; *x=*y; *y=temp; } Variables locales de main a b pantalla 1 2 a=1 b=2 x y &a &b temp Variables locales de intercambio *x*y
Trazado (4) #include void intercambio(int *, int *); main(){ int a=1,b=2; printf("a=%d b=%d\n",a,b); intercambio(&a,&b); printf("a=%d b=%d\n",a,b); return 0; } void intercambio(int *x, int *y){ int temp; temp=*x; *x=*y; *y=temp; } Variables locales de main a b pantalla 1 2 a=1 b=2 x y &a &b temp Variables locales de intercambio *x*y 1
Trazado (5) #include void intercambio(int *, int *); main(){ int a=1,b=2; printf("a=%d b=%d\n",a,b); intercambio(&a,&b); printf("a=%d b=%d\n",a,b); return 0; } void intercambio(int *x, int *y){ int temp; temp=*x; *x=*y; *y=temp; } Variables locales de main a b pantalla 1 2 a=1 b=2 x y &a &b temp Variables locales de intercambio *x*y 1 2
Trazado (6) #include void intercambio(int *, int *); main(){ int a=1,b=2; printf("a=%d b=%d\n",a,b); intercambio(&a,&b); printf("a=%d b=%d\n",a,b); return 0; } void intercambio(int *x, int *y){ int temp; temp=*x; *x=*y; *y=temp; } Variables locales de main a b pantalla 1 2 a=1 b=2 x y &a &b temp Variables locales de intercambio *x*y 1 2 1
Trazado (7) #include void intercambio(int *, int *); main(){ int a=1,b=2; printf("a=%d b=%d\n",a,b); intercambio(&a,&b); printf("a=%d b=%d\n",a,b); return 0; } void intercambio(int *x, int *y){ int temp; temp=*x; *x=*y; *y=temp; } Variables locales de main a b pantalla 1 2 a=1 b=2 Variables locales de intercambio 2 1 Desaparecen al terminar la función!!
Trazado (8) #include void intercambio(int *, int *); main(){ int a=1,b=2; printf("a=%d b=%d\n",a,b); intercambio(&a,&b); printf("a=%d b=%d\n",a,b); return 0; } void intercambio(int *x, int *y){ int temp; temp=*x; *x=*y; *y=temp; } Variables locales de main a b pantalla 1 2 a=1 b=2 2 1 a=2 b=1