Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
c:operadores [2023/08/03 16:18] – [Operadores aritméticos] maziero | c:operadores [2024/09/05 17:35] (atual) – [Ordem de precedência] maziero | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== Operadores em C ====== | ||
+ | |||
+ | Um operador é um símbolo que indica a realização de uma operação sobre uma ou mais variáveis ou valores. Há uma grande diversidade de operadores em C, sendo os principais apresentados nesta seção. | ||
+ | |||
+ | ===== Operadores aritméticos ===== | ||
+ | |||
+ | Os principais operadores aritméticos são descritos abaixo, considerando '' | ||
+ | |||
+ | ^ Operador ^ Descrição ^ Exemplo ^ Resultado ^ | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | ''/'' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | ===== Operadores relacionais ===== | ||
+ | |||
+ | ^ Operador ^ Descrição ^ Exemplo ^ Resultado ^ | ||
+ | | '' | ||
+ | | '' | ||
+ | | ''>'' | ||
+ | | ''<'' | ||
+ | | ''> | ||
+ | | ''< | ||
+ | |||
+ | ===== Operadores lógicos ===== | ||
+ | |||
+ | ^ Operador ^ Descrição ^ Exemplo ^ | ||
+ | | ''&&'' | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | ===== Operadores de atribuição ===== | ||
+ | |||
+ | ^ Operador ^ Descrição ^ Exemplo ^ Equivale a ^ | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | ''/ | ||
+ | | '' | ||
+ | |||
+ | <note important> | ||
+ | Muito cuidado para não confundir a atribuição ( '' | ||
+ | </ | ||
+ | |||
+ | ===== Operadores binários ===== | ||
+ | |||
+ | Considerando duas variáveis inteiras de 8 bits sem sinal: | ||
+ | |||
+ | * A = 0001 0001 (17) | ||
+ | * B = 0110 0011 (99) | ||
+ | |||
+ | ^ Operador ^ Descrição ^ Exemplo ^ Resultado ^ | ||
+ | | ''&'' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | ''<<'' | ||
+ | | ''>>'' | ||
+ | | ''& | ||
+ | | '' | ||
+ | | '' | ||
+ | | ''<< | ||
+ | | ''>> | ||
+ | |||
+ | ===== Operadores diversos ===== | ||
+ | |||
+ | ^ Operador ^ Descrição ^ Exemplo ^ | ||
+ | | '' | ||
+ | | ''&'' | ||
+ | | '' | ||
+ | | ''? | ||
+ | |||
+ | ===== Ordem de precedência ===== | ||
+ | |||
+ | A ordem de precedência dos operadores vistos acima define a sequência em que os operadores serão aplicados. A ordem de precedência pode ter forte influência sobre o resultado da avaliação de expressões complexas. | ||
+ | |||
+ | A tabela a seguir indica a ordem de precedência dos principais operadores em C, da maior para a menor: | ||
+ | |||
+ | ^ Ordem ^ Operadores ^ Descrição ^ | ||
+ | | 1 | '' | ||
+ | | 2 | '' | ||
+ | | 3 | '' | ||
+ | | 4 | '' | ||
+ | | 5 | ''<< | ||
+ | | 6 | ''< | ||
+ | | 7 | '' | ||
+ | | 8 | ''&'' | ||
+ | | 9 | '' | ||
+ | | 10 | '' | ||
+ | | 11 | ''&&'' | ||
+ | | 12 | '' | ||
+ | | 13 | ''? | ||
+ | | 14 | '' | ||
+ | | 15 | '','' | ||
+ | |||
+ | ===== Avaliação de expressões ===== | ||
+ | |||
+ | O tipo do resultado de uma expressão numérica depende dos valores e variáveis envolvidos. Por exemplo, uma expressão contendo somente tipos '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | Elementos de tipos '' | ||
+ | |||
+ | Essa regra de avaliação pode induzir a erros: | ||
+ | |||
+ | <code c media-errado.c> | ||
+ | // Cálculo da média simples de dois valores | ||
+ | #include < | ||
+ | |||
+ | int main () | ||
+ | { | ||
+ | int a = 2, b = 5; | ||
+ | float media; | ||
+ | |||
+ | media = (a + b) / 2; | ||
+ | printf(" | ||
+ | return (0) ; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | No código acima, a expressão '' | ||
+ | |||
+ | < | ||
+ | a media de 2 e 5 vale 3.000000 | ||
+ | </ | ||
+ | |||
+ | Para forçar a avaliação da expressão com reais, basta incluir um valor real: | ||
+ | |||
+ | <code c> | ||
+ | media = (a + b) / 2.0 ; | ||
+ | </ | ||
+ | |||
+ | Agora temos o resultado correto: | ||
+ | |||
+ | < | ||
+ | a media de 2 e 5 vale 3.500000 | ||
+ | </ | ||