[C con Clase] Duda
Oscar
pelucheloko en hotmail.com
Vie Dic 9 23:49:23 CET 2011
Imaginaba algo así, pero, al ver un swap antes del main, y uno después de
él, no me queda claro qué swap entra en juego ¿por qué el que está después
de main? ¿es por que c++ hace una ejecución secuencial línea a línea?
(supongo que esta pregunta es muy novata :-))
También observo que el swap después de main le siguen los { bla bla bla }
que engloban acciones.
Steven, gracias por tu sabia respuesta.
Oscar Aparicio Holgado
Administrador de sistemas.
-----Mensaje original-----
From: Steven Davidson
Sent: Friday, December 09, 2011 3:16 PM
To: Lista de correo sobre C y C++
Subject: Re: [C con Clase] Duda
Hola Óscar,
2011/12/9 Oscar AH <enigma-si en hotmail.com>:
> Hola que tal como estais.
>
> Tengo el siguiente código :
>
> #include <iostream>
>
> void swap(int *x, int *y);
>
> int main()
> {
> int x = 5, y = 10;
>
> std::cout << "Main. Before swap, x: " << x
> << " y: " << y << "\n";
> swap(&x, &y);
> std::cout << "Main. After swap, x: " << x
> << " y: " << y << "\n";
> return 0;
> }
>
> void swap(int *px, int *py)
> {
> int temp;
>
> std::cout << "Swap. Before swap, *px: " << *px
> << " *py: " << *py << "\n";
>
> temp = *px;
> *px = *py;
> *py = temp;
>
> std::cout << "Swap. After swap, *px: " << *px
> << " *py: " << *py << "\n";
> }
>
> que produce la siguiente salida :
>
> Main. Before swap, x: 5 y: 10
> Swap. Before swap, *px: 5 *py: 10
> Swap. After swap, *px: 10 *py: 5
> Main. After swap, x: 10 y: 5
>
> No entiendo por qué si en main después del primer Main. Before swap salta
> a
> Swap. Before swap.
>
> ¿Me lo podeis explicar por favor?
>
Porque en 'main()', se invoca a 'swap()', por lo tanto se ejecuta sus
sentencias; esto es,
1) int x = 5, y = 10;
2) std::cout << "Main. Before swap, x: " << x
<< " y: " << y << "\n";
3) swap(&x, &y);
Dentro de 'swap()':
3.1) int temp;
3.2) std::cout << "Swap. Before swap, *px: " << *px
<< " *py: " << *py << "\n";
Espero haberte orientado un poco.
Steven
_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Más información sobre la lista de distribución Cconclase