Vídeo: Programação em C - Aula 37 - Associatividade de Operadores 2024
Todos os operadores executam alguma função definida em C ++. Além disso, cada operador tem uma precedência - uma ordem especificada na qual as expressões são avaliadas. Considere, por exemplo, como a precedência afeta a resolução do seguinte problema:
int var = 2 * 3 + 1;
Se a adição for realizada antes da multiplicação, o valor da expressão é 2 vezes 4 ou 8. Se a multiplicação for realizada primeiro, o valor é 6 mais 1 ou 7.
A precedência dos operadores determina quem vai primeiro. O conceito de precedência também está presente na aritmética. C ++ adere à precedência aritmética comum. Portanto, a multiplicação tem precedência maior que a adição, então o resultado é 7.
Então, o que acontece quando dois operadores da mesma precedência aparecem na mesma expressão? Por exemplo:
int var = 8/4/2;
Quando os operadores da mesma precedência aparecem na mesma expressão, eles são avaliados da esquerda para a direita (a mesma regra aplicada na aritmética). Assim, neste fragmento de código, var é igual a 8 dividido por 4 (que é 2) dividido por 2 (que é 1).
A expressão
x / 100 + 32
divide x por 100 antes de adicionar 32. Mas e se o programador quis dividir x por 100 mais 32? O programador pode alterar a precedência agrupando expressões entre parênteses (tons de álgebra!), Da seguinte forma:
x / (100 + 32)
Essa expressão tem o mesmo efeito que dividir x por 132. A expressão original
x / 100 + 32
é idêntico à expressão
(x / 100) + 32