Alfredo,

Tentando trazer � tona meus parcos conhecimentos de programa��o sem estar ao
lado de um livro ou apostila, a sua rotina abaixo s� corretamente vai
funcionar se o x e y forem vari�veis externas a main(), e obviamente se vc
retirar as vari�veis locais x e y em alternar().

Observe que na sua rotina voc� est� apenas "trocando" as vari�veis x e y
internas a alternar e, quando voc� retornar a rotina principal elas ser�o
"destru�das".

Qualquer coisa **mail-me**.
Se eu estiver errado por favor me corrijam.

Carlos Thadeu
Niter�i-RJ

-----Mensagem original-----
De: apsantos [mailto:[EMAIL PROTECTED]
Enviada em: Sexta-feira, 14 de Mar�o de 2003 09:54
Para: [EMAIL PROTECTED]
Assunto: OFF-Topic. S� para quem usa C e se disp�e a esclarecer d�vidas
simples.


Pessoal

Gostaria de saber porque a rotina abaixo n�o funciona para alternar o
valor de duas vari�veis,

/*
  Programa troca0.c
  A rotina alternar n�o funciona, o que s� ocorrer�  com o
  uso de ponteiros. Veja-se troca1.c
*/
main()
{
int x, y;   
x = 5;
y = 7;

printf("Valor de a: %d\n", x);
printf("Valor de b: %d\n", y);

alternar(x, y);

printf("\nDepois da troca\n"); /* N�o ocorre a troca */

printf("Valor de a: %d\n", x);
printf("Valor de b: %d\n", y);

}

alternar(x, y)
int x, y;
{
  int temp;
  temp = x;
     x = y;
     y = temp;
}


Assinantes em 14/03/2003: 2224
Mensagens recebidas desde 07/01/1999: 204246
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista:
            mailto:[EMAIL PROTECTED]

Responder a