Quando utilizamos os operadores de incremento e decremento dentro de comandos mais complexos existe a diferença entre o uso pré-fixado ou pós-fixado. Vejamos o código abaixo para o operador pós-fixado:
int a = 5, b;
b = a++;
Qual o valor das variáveis a e b?
O valor esperado para a é 6 e para b é 5.
Se utilizarmos o operador pré-fixado, conforme exemplo abaixo:
int a = 5, b;
b = ++a;
O valor esperado para ambas as variáveis é 6.
Notaram a diferença?
Quando o operador é pós-fixado, o valor da variável é utilizado no comando e após a conclusão desse comando o valor será atualizado. No primeiro exemplo, o comando é de atribuição, seguido da atualização da variável pelo operador de incremento, uma vez que ele é pós-fixado. Com isso o valor de a, que é cinco, é atribuído à variável b e então a variável a é atualizada.
Quando o operador é pré-fixado, primeiro a variável é atualizada para então utilizar o seu valor. No segundo exemplo percebemos que a variável a é atualizada para seis e então o comando de atribuição é executado, passando para a variável b o valor 6.
Esse comportamento é análogo para os operadores de decremento, só que diminuindo o valor em uma unidade ;)
Em linhas gerais:
Operador pré-fixado, atualiza (incrementa ou decrementa) e depois usa o valor.
Operador pós-fixado, usa o valor e depois atualiza (incrementa ou decrementa).
Espero que isso ajude vocês a compreender melhor esses operadores.
8 comentários:
Vlw parceiro...Era isso mesmo que eu estava procurando..está tudo bem explicado...Abraço!
Opa, tava querendo saber isso, muito útil, valeu!
mas quando e que se deve utilizar um ou outro?
Muito obrigada. Muito, Muito, bom!!!
tirou uma baita dúvida.
E se fosse:
int a = 5, b;
b = a++ + 6
Qual o valor final da variável b?
Muito grato, ótimo post! Aliás seu blog é ótimo, pena que vc parou de postar.. Poderia continuar a avançar na linguagem C, chegando a estrutura de dados..
Excelente explicação! Parabéns!
Postar um comentário