Linguagem de Programação C++
Universidade Federal de Santa Catarina
Departamento de Engenharia Elétrica, CTC
Prof. Eduardo Augusto Bezerra
"Esse material foi adaptado a partir de um website não identificado."
a = 5;
b = a;
int a, b; // a:? b:? a = 10; // a:10 b:? b = 4; // a:10 b:4 a = b; // a:4 b:4 b = 7; // a:4 b:7
a = 2 + (b = 5);
b = 5;
a = 2 + b;
a = b = c = 5;
+ |
adição |
- |
subtração |
* |
multiplicação |
/ |
divisão |
% |
módulo |
a++;
a+=1;
a=a+1;
Exemplo 1 |
Exemplo 2 |
B=3; |
B=3; |
== |
Igual |
!= |
Diferente |
> |
Maior que |
< |
Menor que |
>= |
Maior ou igual a |
<= |
Menor ou igual a |
(7 == 5) |
Retorna false |
(5 > 4) |
Retorna true |
(3 != 2) |
Retorna true |
(6 >= 6) |
Retorna true |
(5 < 5) |
Retorna false |
(a == 5) |
Retorna false |
(a*b >= c) |
Retorna true pois (2*3 >= 6) |
(b+4 > a*c) |
Retorna false pois (3+4 > 2*6) |
((b=2) == a) |
Retorna true |
!(5 == 5) |
retorna false uma vez que a expressão à direita(5 == 5) será true. |
!(6 <= 4) |
retorna true uma vez que a expressão à direita (6 <= 4) será false. |
!true |
retorna false. |
!false |
retorna true. |
Primeiro operando |
Segundo operando |
resultado |
resultado |
true |
true |
true |
true |
true |
false |
false |
true |
false |
true |
false |
true |
false |
false |
false |
false |
( (5 == 5) && (3 > 6) ) retorna false ( true && false ).
( (5 == 5) || (3 > 6)) retorna true ( true || false ).
7==5 ? 4 : 3 |
retorna 3 uma vez que 7 é diferente de 5. |
7==5+2 ? 4 : 3 |
retorna 4 uma vez que 7 é igual a 5+2. |
5>3 ? a : b |
retorna a, uma vez que 5 é maior que 3. |
a>b ? a : b |
retorna o maior entre a ou b. |
op |
asm |
Descrição |
& |
AND |
E lógico |
| |
OR |
OU lógico |
^ |
XOR |
OU exclusivo lógico |
~ |
NOT |
Complemento (inversão de bits) |
<< |
SHL |
Deslocamento à esquerda |
>> |
SHR |
Deslocamento à direita |
int i;
float f = 3.14;
i = (int) f;
i = int ( f );
a = sizeof (char);
Considere a expressão:
a = 5 + 7 % 2
Qual a alternativa correta?
a = 5 + (7 % 2) com resultado 6, ou
a = (5 + 7) % 2 com resultado 0
Resultado 6 é o correto, uma % possui maior prioridade conforme pode ser observado na tabela a seguir.
Prioridade |
Operador |
Descrição |
Direção |
1 |
:: |
escopo |
Esquerda |
2 |
() [ ] -> . sizeof |
|
Esquerda |
3 |
++ -- |
Incremento/decremento |
Direita |
~ |
Complemento (bit-a-bit) |
||
! |
NOT |
||
& * |
Referência (ponteiros) |
||
(type) |
Type casting |
||
+ - |
Sinais unários |
||
4 |
* / % |
Operações aritméticas |
Esquerda |
5 |
+ - |
Operações aritméticas |
Esquerda |
6 |
<< >> |
Deslocamento (bit-a-bit) |
Esquerda |
7 |
< <= > >= |
Operadores relacionais |
Esquerda |
8 |
== != |
Operadores relacionais |
Esquerda |
9 |
& ^ | |
Operadores bit-a-bit |
Esquerda |
10 |
&& || |
Operadores lógicos |
Esquerda |
11 |
?: |
Condicional |
Direita |
12 |
= += -= *= /= %= |
Atribuição |
Direita |
13 |
, |
Vírgula, separação |
Esquerda |
A última coluna da tabela indica qual operador deve ser executado primeiro (mais a esquerda ou mais a direita) nos casos onde existem diversos operadores com o mesmo nível de prioridade.