Precedência do operador em c

Precedência do operador em c

Quando avaliamos qualquer expressão que envolva o uso de diferentes operadores, somos obrigados a resolver a expressão para calcular seus valores com base na precedência do operador. Precedência é o termo para atribuir uma prioridade ou peso a algum valor/termo; portanto, a precedência do operador atribui a prioridade aos operadores em uma expressão. Para entender isso, assuma qualquer expressão, e.g., 8*3+2, e a resposta para essa expressão pode resultar em dois valores diferentes, “26” e “40”, respectivamente. No entanto, escolheremos o resultado da expressão como "26", uma vez que o operador de multiplicação "*" tem mais precedência do operador em comparação com o operador de adição "+", portanto, a expressão primeiro calculará a multiplicação entre 8 e 3 e o resultado será então adicionado com o 2. Muitos operadores na linguagem de programação C têm mais prioridade sobre os outros operadores.

Procedimento

Precedência do operador é um conceito importante em métodos numéricos para resolver uma expressão. Precisamos dessa precedência para resolver a expressão. Se não seguirmos nenhuma regra, não saberemos qual operador resolver primeiro, e podemos obter uma resposta diferente toda vez. Para evitar essa confusão, padronizamos a prioridade para os operadores que informam qual operadora devemos avaliar primeiro em qualquer expressão. Vamos resolver vários exemplos com diferentes operadores neste artigo.

Exemplo 01

No exemplo, executaremos um programa no compilador Visual Studio C que calculará a expressão numérica envolvendo certos operadores numéricos. Se tomarmos um exemplo de expressão como:

6*5-4+2

Sem a precedência do operador, temos duas maneiras de resolver esta expressão. Uma maneira é resolver essa expressão avaliando os operadores da esquerda para a direita. Se o fizermos, teremos a resposta "28". Outra maneira de resolver a expressão é se começarmos a avaliar os operadores da direita para a esquerda, calcularemos a resposta para essa expressão como "26". As respostas que temos são diferentes uma da outra e também suspeitam. Como escolheríamos qual resposta está correta se essas respostas não estiverem erradas? Vamos resolver este exemplo no compilador C desenvolvendo um programa para esta operação. O Visual Studio C possui precedência de operador padrão para tais expressões.

Para implementar isso, precisamos criar um projeto e depois declarar a função principal como "main ()" com o tipo de retorno "inteiro". Na função principal, inicialize um número inteiro com um nome de variável "a" e atribua a expressão numérica anterior a ele. Em seguida, exiba o resultado dessa expressão na variável chamando o método printf (), que levará o especificador de formato para a variável inteira "a" como "%i" e também o nome da variável "a" em seus argumentos. Aqui está o programa mais curto que você pode executar:

#incluir
int main ()

int a = 6 * 5 - 4 + 2;
printf ("%i", a);
retornar 0;

A saída da expressão "A" será calculada por este programa como o "28".

Exemplo 02

Para saber mais sobre a precedência do operador, resolveremos um exemplo para a expressão que envolve os operadores aritméticos e os operadores de suporte e aprenderá como a linguagem de programação C dá precedência a vários tipos de operadores. A expressão em que vamos trabalhar neste exemplo é a seguinte:

((3*8) +2) -2

A expressão envolve os dois operadores de parênteses e o operador aritmético “+”. Para verificar como o compilador para C resolverá essa expressão, criará um novo projeto e declarará uma função chamada "Main" com o número inteiro "int" como seu tipo de retorno. Nesta função, inicialize uma variável "x" com um número inteiro de tipo de dados. Para esta variável, atribua a expressão numérica, e.g., “Int x = ((3*8) +2) -2” e exibir a variável na saída.

#incluir
int main ()

int x = ((3 * 8) + 2) - 2;
printf ("%i", x);
retornar 0;

A saída para a variável "x" declarada no exemplo anterior seria o valor numérico "24". Temos essa saída, pois a linguagem de programação C precede o operador parênteses em comparação com o operador aritmético “+”. Portanto, o primeiro operador avaliado na expressão foi o operador parênteses, que envolveu a multiplicação dos dois valores, 3 e 8, que deu ao valor 24. Em seguida, o compilador resolveu novamente o segundo operador de parêntese, que acrescentou o valor resultante da primeira entre parênteses com o valor numérico 2. A resposta para o segundo parêntese é "26". Então veio a curva para a subtração e "2" foi subtraído de 26, o que resultou na resposta de expressão como 24.

Exemplo 03

Para o terceiro exemplo, resolveremos uma expressão envolvendo os operadores que são iguais ou tenham a mesma precedência. Para esse caso, vamos implementar um exemplo em que declararemos as três variáveis ​​x, y e z, todas com o mesmo tipo de dados que um número inteiro com os valores inicializados que 30, 20 e 10. Queremos comparar todos os três valores como x> y> z. Se a condição (x> y> z) se tornar verdadeira, a saída imprimirá "correto". Caso contrário, "falso". Este exemplo é implementado da seguinte maneira:

#incluir
int main ()

int x = 30;
int y = 20;
int z = 10;
se (x> y> z)
printf ("correto");
outro
printf ("false");
retornar 0;

Do código anterior, podemos ver que a expressão tem apenas operadores de comparador. No programa C, quando existe o mesmo tipo de operador na expressão, simplesmente calculamos a expressão avaliando o operador da esquerda para a direita. Essa é a razão pela qual a saída exibiu o "correto" para a expressão. Se passarmos da esquerda para a direita e compararmos o (x> y)> z, essa seria uma declaração correta para os valores x = 30, y = 20 = e z = 10.

Conclusão

Precedência do operador é a regra fundamental de atribuir prioridades aos operadores enquanto lida com expressões numéricas nos programas escritos em c. Este artigo destaca a precedência dos operadores sobre os mesmos e diferentes operadores para fins de avaliação. Implementamos três exemplos diferentes com três casos diferentes envolvendo a precedência do operador.