[LHC] Duvida de C, ponteiros

Gabriel Hidasy gabrielhidasy at gmail.com
Fri May 8 04:16:20 PDT 2015


Pelo que eu testei é syntax sugar, o efeito é o mesmo, mas sem precisar
enviar explicitamente o endereço e dereferenciar dentro da outra função.

void mudaValor(int & valor){
    valor = 5;
}

int meuInteiro = 0;

mudaValor(meuInteiro);

printf("Meu novo valor é: %d", meuInteiro");

Resultado >> Meu novo valor é: 5

Mas não compilou como C, só como C++.

IMHO isso cria ainda mais possibilidades de side effects inesperados e
malvados

2015-05-08 4:28 GMT+02:00 Gabriel Krisman Bertazi <gabriel at krisman.be>:

> Fabio Mello <fabiohmello at gmail.com> writes:
>
> > opa, não sei se isso existem em c, mas em c++ isso indica que o
> > parâmetro é uma referência para o objeto, e não um ponteiro.
>
> Referencias deste tipo não existem em C, só em C++.
>
> > não usei isso na prática, mas acredito que vc acessaria como
> > obj.method() em caso de referência e como obj->method() em caso de
> > ponteiro.
> >
> > tbm não existe aritmética de referências como existe a de ponteiros,
> > como p++ para apontar para o próximo elemento.
>
> Isso.  A referência praticamente  "amplia o escopo" da variável
> referenciada para dentro da função ou método que a recebe.
>
> Na prática é mais uma das infinitas coisas bloated e replicadas de C++
> que obscurecem ainda mais o código.  Claro que na minha opinião. :)
>
> Algumas explicações e uma certa crítica:
>
> http://yosefk.com/c++fqa/ref.html
>
> --
> Gabriel Krisman Bertazi
>
> _______________________________________________
> Lista do LHC <http://lhc.net.br>
> HSC at listas.tia.mat.br
> http://listas.tia.mat.br/listinfo.cgi/hsc-tia.mat.br
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.tia.mat.br/pipermail/hsc-tia.mat.br/attachments/20150508/c5f758df/attachment.html>


More information about the HSC mailing list