CURSO DE C
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;
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:
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... | |
O operador , determina uma lista de expressões que devem ser executadas sequencialmente. Em síntese, a vírgula diz ao compilador: execute as duas expressões separadas pela vírgula, em seqüência. O valor retornado por uma expressão com o operador , é sempre dado pela expressão mais à direita. No exemplo abaixo:
x=(y=2,y+3);
o valor 2 vai ser atribuído a y, se somará 3 a y e o retorno (5) será atribuído à variável x . Pode-se encadear quantos operadores , forem necessários.
O exemplo a seguir mostra um outro uso para o operador , dentro de um for:
#include<stdio.h>
int main()
{
int x, y;
for(x=0 , y=0 ; x+y < 100 ; ++x , y++) /* Duas variáveis de controle: x e y . Foi atribuído o valor zero a cada uma delas na inicialização do for e ambas são incrementadas na parte de incremento do for */
printf("\n%d ", x+y); /* o programa imprimirá os números pares de 0 a 98 */
}
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.
| Maior precedência | () [] -> |
| ! ~ ++ -- . -(unário) (cast) *(unário) &(unário) sizeof | |
| * / % | |
| + - | |
| << >> | |
| <<= >>= | |
| == != | |
| & | |
| ^ | |
| | | |
| && | |
| || | |
| ? | |
| = += -= *= /= | |
| Menor precedência | , |
Uma dica aos iniciantes: Você não precisa saber toda a tabela de precedências de cor. É ú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.
![]()
Curso de C da EE/UFMG - 1996 - 2000