ajuda com esse código do radix

1. ajuda com esse código do radix

leone duarte de oliveira
leone_duarte

(usa Debian)

Enviado em 25/04/2018 - 13:08h

"balde2[(vetor[i] / mutiplo) % 10]++;"

o que significa esse "++ " apos o vetor, ele faz o que?.
\0/


  


2. Re: ajuda com esse código do radix

Paulo
paulo1205

(usa Ubuntu)

Enviado em 26/04/2018 - 00:38h

Isso é básico da sintaxe do C: operador pós-fixado de incremento. O sentido de fazer “var++“ é equivalente ao seguinte:.

(temp=var, var=var+1, temp)  /* “temp” é uma variável fictícia com o mesmo tipo de “var”. */
/* Em Português: guarda o valor atual de “var”, incrementa “var”, e devolve à expressão o valor que fora guardado. */
/* Note que os parênteses neste exemplo não indicam chamada de função, mas sim o agrupoamento de
três expressões separadas pelo operador de sequenciamento (“,”). */


No seu caso, em vez de uma variável comum, você usa um elemento de array (cujo valor é variável): o valor do elemento referenciado é guardado, tal elemento é incrementado, e o valor guardado é devolvido à expressão.

No seu caso, você despreza o valor retornado (i.e. não o atribui a outra variável nem o usa como parte de uma expressão maior, o que é perfeitamente aceitável em C), de modo que o único efeito que você vai perceber é que o elemento do vetor é incrementado.


Existe outra versão do operador de incremento, que é quando ele é colocado como prefixo (e.g. “++var”). Nesse caso, a variável é incrementada antes de se pegar qualquer valor, e seu novo valor é devolvido à expressão. Seria um comportamento equivalente ao seguinte código.

(var=var+1, var) 







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts