CURSO DE C
Expressões
Expressões são combinações de variáveis,
constantes e operadores. Quando montamos expressões temos que levar
em consideração a ordem com que os operadores são
executados, conforme a tabela de precedências
da linguagem C.
Exemplos de expressões:
Anos=Dias/365.25;
i = i+3;
c= a*b + d/e;
c= a*(b+d)/e;
Conversão de tipos em expressões
Quando o C avalia expressões onde temos variáveis de tipos
diferentes o compilador verifica se as conversões são possíveis.
Se não são, ele não compilará o programa, dando
uma mensagem de erro. Se as conversões forem possíveis ele
as faz, seguindo as regras abaixo:
-
Todos os chars
e short
ints são convertidos para ints. Todos os floats
são convertidos para doubles.
-
Para pares de operandos de tipos diferentes: se um deles é long
double o outro é convertido para long
double; se um deles é double
o outro é convertido para double;
se um é long
o outro é convertido para long;
se um é unsigned
o outro é convertido para unsigned.
Expressões que Podem ser Abreviadas
O C admite as seguintes equivalências, que podem ser usadas para
simplificar expressões ou para facilitar o entendimento de um programa:
Expressão Original |
Expressão Equivalente |
x=x+k; |
x+=k; |
x=x-k; |
x-=k; |
x=x*k; |
x*=k; |
x=x/k; |
x/=k; |
x=x>>k; |
x>>=k; |
x=x<<k; |
x<<=k; |
x=x&k; |
x&=k; |
etc... |
Encadeando expressões: o operador
,
O operador , determina uma lista de expressões que devem
ser executadas sequencialmente. O valor retornado por uma expressão
com o operador , é sempre dado pela expressão mais à
direita. No exemplo abaixo:
x=(a=2,a+3);
a variável x receberá o valor 5. Pode-se encadear
quantos operadores , forem necessários.
Tabela de Precedências do C
Esta é a tabela de precedência dos operadores em C.
Alguns (poucos) operadores ainda não foram estudados, e serão
apresentados em aulas posteriores.
Mais baixa |
() [] -> |
|
! ~ ++ -- . -(unário) (cast) *(unário) &(unário)
sizeof |
|
* / % |
|
+ - |
|
<< >> |
|
<<= >>= |
|
== != |
|
& |
|
^ |
|
| |
|
&& |
|
|| |
|
? |
|
= += -= *= /= |
Mais alta |
, |
Uma dica aos iniciantes: Você não precisa saber toda a tabela de precedências de cor.
E útil que você conheça as principais relações, mas é
aconselhável que ao escrever o seu código, você tente isolar as expressões
com parênteses, para tornar o seu programa mais legível.
Dúvidas? De uma olhadinha em nosso
FAQ