Em C++, quando trabalhamos com os operadores, existe uma sequência na qual todas as operações são realizadas. A precedência do operador é utilizada ao trabalhar com vários operadores na expressão do nosso código. Por exemplo, ao trabalhar com operadores de adição, subtração, multiplicação e divisão, as operações de multiplicação e divisão são executadas primeiro da esquerda para a direita, pois têm alta precedência, e as operações de adição e subtração são executadas a seguir, da esquerda para a direita, pois têm baixa precedência do que a multiplicação e divisão. Mas se a expressão contém apenas os operadores de adição e subtração, a operação é simplesmente executada da esquerda para a direita. Aqui mostraremos a tabela de precedência de operadores e os exemplos de precedência de operadores.
Precedência de operadores de operações aritméticas
Operação | Operadores | Precedência |
---|---|---|
parênteses | () | Esses parênteses são operados. |
multiplicação, divisão, módulo | *, /,% | Essas operações são realizadas e sua ordem é da esquerda para a direita. |
adição subtração | +, – | Essas operações são realizadas no final e sua sequência é da esquerda para a direita. |
Exemplo 1:
Vamos começar nosso código incluindo o arquivo de cabeçalho denominado “iostrem”. Muitas funções são declaradas neste arquivo de cabeçalho “iostream” que usaremos em nosso código. Abaixo dele, digitamos “namespace std” e invocamos “main()” adiante. Aqui em “main()”, declaramos as variáveis denominadas “i”, “j” e “k” com “int” e os valores que passamos aqui são “10”, “37” e “29”, respectivamente. Também declaramos a variável “r” onde o resultado é salvo.
Depois disso, digitamos uma expressão usando os operadores “+, “/” e “-”. Como explicamos anteriormente, essas operações são realizadas em sequência. A expressão que colocamos aqui é “i + j / k – j” em que primeiro é realizada a divisão e depois são realizadas as operações de adição e subtração. Ele exibe o resultado em valores inteiros conforme declaramos a variável “r” como o inteiro. A seguir, exibimos o resultado calculado usando “cout”.
Código 1:
#includeusando espaço para nome padrão ;
interno principal ( )
{
interno eu = 10 , j = 37 , k = 29 , r ;
R = eu + j / k - j ;
corte << 'O resultado da expressão dada é =' << R ;
retornar 0 ;
}
Saída:
A saída é “-26” após realizar todas as operações. Este resultado é calculado de acordo com a precedência do operador fornecida pela linguagem C++.
Exemplo 2:
Neste código, após incluir o arquivo de cabeçalho e invocar “main()”, inicializamos uma variável “int” com o nome “val1” e colocamos a expressão na qual digitamos “9 + 18 * 7”. Aqui, ele realiza primeiro a multiplicação e depois adiciona “9” ao valor multiplicado. A seguir, inicializamos “int val2” com “9 + (18 * 7)”.
Aqui, os parênteses são resolvidos primeiro. Então, a adição é realizada. Depois disso, inicializamos também “int val3” com a expressão “(9 + 18) * 7”. Nesta expressão, os parênteses novamente são operados primeiro e depois a multiplicação é realizada. Os valores da expressão são iguais, mas fornecem resultados exclusivos devido à precedência do operador. Agora seguimos em frente e imprimimos todos os resultados que estão armazenados nas variáveis “val1”, “val2” e “val3” com o auxílio de “cout”.
Código 2:
#includeusando espaço para nome padrão ;
interno principal ( ) {
interno escolha1 = 9 + 18 * 7 ;
interno val2 = 9 + ( 18 * 7 ) ;
interno val3 = ( 9 + 18 ) * 7 ;
corte << 'O primeiro resultado mostra =' << escolha1 << fim ;
corte << 'O segundo resultado mostra =' << val2 << fim ;
corte << 'Terceiro resultado mostra =' << val3 << fim ;
retornar 0 ;
}
Saída:
O resultado que obtemos após calcular a expressão dada é o seguinte. Podemos ver que o terceiro resultado não é igual aos outros dois, embora os valores sejam iguais. Isto se deve à precedência do operador que é aplicada ao operador da expressão.
Exemplo 3:
Aqui, inicializamos diferentes variáveis com valores diferentes, e o tipo de dados de todas essas variáveis é “int”. Temos as variáveis inteiras “a”, “b”, “c” e “d” com os valores “14”, “9”, “15” e “29”, respectivamente. Depois disso, inicializamos “int R1” e a expressão que colocamos aqui é “a + b) * c/d”. Os parênteses são resolvidos primeiro. Em seguida, são realizadas as operações de multiplicação e divisão. Também exibimos o resultado abaixo disso. Então, temos “int R2” com a expressão “a – b * (d + a) + c”. Aqui também resolve os parênteses e depois a subtração e a adição são realizadas de acordo com a precedência do operador. Também imprimimos seu resultado e inicializamos “int R3” onde a expressão “b – d + c * a” é digitada. Nesta expressão, a multiplicação é realizada primeiro, depois a subtração e a adição são realizadas. O resultado desta expressão também é exibido a seguir. Agora, temos a última expressão, “d + (a * b) / a”, cujo resultado está armazenado na variável “R4”. Nesta expressão, os parênteses são resolvidos primeiro e depois divididos. Ao final é realizada a adição. O resultado desta expressão é mostrado a seguir:
Código 3:
#includeusando espaço para nome padrão ;
interno principal ( ) {
interno a = 14 ;
interno b = 9 ;
interno c = quinze ;
interno d = 29 ;
interno R1 = ( a + b ) * c / d ;
corte << '(a + b) *c/d' << 'dá =' << R1 << fim ;
interno R2 = a - b * ( d + a ) + c ;
corte << 'a - b (d + a) + c ' << 'dá =' << R2 << fim ;
interno R3 = b - d + c * a ;
corte << 'b - d + c * a' << 'dá =' << R3 << fim ;
interno R4 = d + ( a * b ) / a ;
corte << 'd + (a * b) / a ' << 'dá =' << R4 << fim ;
retornar 0 ;
}
Saída:
A seguir está o resultado do cálculo das expressões mencionadas anteriormente. Obtemos este resultado porque os operadores na expressão têm a precedência de operador aplicada a eles:
Exemplo 4:
Inicializamos as variáveis “a1”, “b1”, “c1”, “d1”, “e1” e “f1” aqui com os valores inteiros de “64”, “90”, “11”, “27”, “34” e “98”, respectivamente. Inicializamos o “int result1” aqui com a expressão “a1 + b1 – c1) * d1 / f1” e o resultado é armazenado na variável “result1”. Aqui, os parênteses são resolvidos primeiro. Então, as operações restantes são computadas sequencialmente. Em seguida, imprimimos o “resultado1”. Da mesma forma, calculamos as expressões e as armazenamos em diferentes variáveis. Em seguida, imprimimos todos os resultados separadamente, mostrando como funciona a precedência do operador.
Código 4:
#includeusando espaço para nome padrão ;
interno principal ( ) {
interno a1 = 64 ;
interno b1 = 90 ;
interno c1 = onze ;
interno d1 = 27 ;
interno e1 = 3. 4 ;
interno f1 = 98 ;
interno resultado1 = ( a1 + b1 - c1 ) * d1 / f1 ;
corte << 'O resultado 1 é' << resultado1 << fim ;
interno resultado2 = a1 + ( f1 * b1 ) / e1 ;
corte << 'O resultado 2 é' << resultado2 << fim ;
interno resultado3 = e1 + d1 + a1 - c1 * b1 / a1 ;
corte << 'O resultado 3 é' << resultado3 << fim ;
interno resultado4 = a1 - f1 + ( b1 - d1 ) * c1 ;
corte << 'O resultado 4 é' << resultado4 << fim ;
interno resultado5 = ( f1 + ( a1 * ( b1 + a1 ) - f1 ) * a1 + e1 ) ;
corte << 'O resultado 5 é' << resultado5 << fim ;
retornar 0 ;
}
Saída:
A saída do código fornecido é renderizada aqui, mostrando o resultado de todas as expressões que inserimos anteriormente. Todas as expressões são calculadas seguindo a regra de precedência de ordem.
Conclusão
Vimos a “precedência C++” aqui, na qual estudamos profundamente a ordem dos operadores em que eles são calculados na programação C++. Também mostramos a ordem dos operadores em forma de tabela e depois realizamos vários exemplos nos quais aprendemos como as expressões eram resolvidas de acordo com a precedência de ordem na programação C++.