Alfredo,

A sua primeira rotina n�o funciona, porque a fun��o n�o pode modificar
vari�veis que foram declaradas fora dela. Ela pode trabalhar com os
valores sim, mas n�o afetar� nas vari�veis diretamente, a n�o ser que
voc� passe os par�metros como ponteiros, como voc� fez no segundo
exemplo (n�o sou muito bom em C, me corrijam se eu tiver falado
besteira) atrav�s do s�mbolo &. Veja:

> alternar(&x, &y);

Note que na fun��o, as vari�veis devem ser declaradas como ponteiros
tamb�m (utilizando o s�mbolo *): (novamente me corrijam se houver erros)

> int *x, *y;

Ah, n�o sei se sua primeira abordagem funcionaria em outras linguagens
n�o hein.. no PHP por exemplo j� n�o funcionaria.. (o PHP � neto do C)


Espero ter esclarecido sua d�vida.
D� uma passadinha na prog-br.. l� o pessoal � mais especializado e pode
te informar melhor sobre C.
http://listas.conectiva.com.br

At� mais


Renato Q. Todorov
Webmaster Jet Sites <[EMAIL PROTECTED]>


On Fri, 2003-03-14 at 12:53, apsantos wrote:
> Pessoal
> 
> Gostaria de saber porque a rotina abaixo n�o funciona para alternar o
> valor de duas vari�veis,
> e a que vem logo a seguir sim. Em outras linguagens, como Pascal ou
> Fortran, essa mesma abordagem funcionaria. Ser� isso devido � alguma
> caracter�stica do C no que se refere ao uso da mem�ria ou as outras
> linguagens agem da mesma forma, por�m as coisas se passando como se
> fossem diferentes?
> 
> Desculpem-me o que para muitos seja uma quest�o ing�nua, mas � que
> realmente eu queria entender esse ponto.
> Sugest�es de sites ou textos onde essas quest�es possam ser esclarecidas
> ser�o bem vindas.
> 
> Obrigado desde j�.
> 
> Alfredo


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

Responder a