domingo, 9 de janeiro de 2011

[Programação em C] Precedência de operadores aritméticos, relacionais e lógicos

Operadores aritméticos binários: + (soma), - (subtração), * (multiplicação), \ (divisão) e % (módulo). O operador de módulo não pode ser aplicado a float ou double. Os operadores binários + e - possuem a mesma precedência e têm precedência menor do que os operadores *, / e % que por sua vez é menor que a do + e - unário. Lembrando que os operadores aritméticos se associam da esquerda para a direita.

Operadores relacionais: > (maior), >= (maior ou igual), < (menor), <= (menor ou igual). Todos os operadores relacionais têm a mesma precedência. Os operadores de igualdade == (igual) e != (diferente) têm precedência maior do que os operadores relacionais.

Os operadores relacionais possuem menor precedência que os operadores aritméticos.

O operador lógico && (E) tem precedência maior do que operador lógico || (OU) e ambos têm menor precedência que os operadores relacionais e de igualdade.

Não podemos esquecer do operador unário ! (negação) que converte verdadeiro em falso e vice-versa.

Fonte: Livro C - A Linguagem de Programação Padrão ANSI (Kernighan e Ritchie).


Nenhum comentário: