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.