Beruflich Dokumente
Kultur Dokumente
O operador ! é o operador C++ que realiza a operação booleana NOT. Ele tem apenas um
operando, localizado a sua direita, e a única coisa que ele faz é retornar o inverso dele,
produzindo false se seu operando é true e true se seu operando é false. Basicamente, ele
retorna o valor booleano oposto de seu operando. Por exemplo:
!(5 == 5) // evaluates to false because the expression at its right (5 == 5) is true.
!(6 <= 4) // evaluates to true because (6 <= 4) would be false.
!true // evaluates to false
!false
Os operadores lógicos && e || são usados na avaliação de duas expressões para obter um
único resultado relacional. O operador && corresponde à operação lógica booleana AND. Esta
operação resulta true se ambos os seus dois operandos são verdadeiros e false caso
contrário. O quadro a seguir mostra o resultado do operador &&, resultado da avaliação da
expressão a && b:
Operadores lógicos ( !, &&, || )
O operador ! é o operador C++ que realiza a operação booleana NOT. Ele tem apenas um
operando, localizado a sua direita, e a única coisa que ele faz é retornar o inverso dele,
produzindo false se seu operando é true e true se seu operando é false. Basicamente, ele
retorna o valor booleano oposto de seu operando. Por exemplo:
!(5 == 5) // evaluates to false because the expression at its right (5 == 5) is true.
!(6 <= 4) // evaluates to true because (6 <= 4) would be false.
!true // evaluates to false
!false
Os operadores lógicos && e || são usados na avaliação de duas expressões para obter um
único resultado relacional. O operador && corresponde à operação lógica booleana AND. Esta
operação resulta true se ambos os seus dois operandos são verdadeiros e false caso
contrário. O quadro a seguir mostra o resultado do operador &&, resultado da avaliação da
expressão a && b:
Operadores lógicos ( !, &&, || )
&& OPERATOR
a b a && b
true true True
true false False
false true False
false false False
Operadores lógicos ( !, &&, || )
|| OPERATOR
a b a || b
true true true
true false true
false true true
false false false
O operador || corresponde à operação lógica OR. Esta operação resulta true se qualquer um
de seus dois operandos é verdadeiro, sendo false somente quando ambos os operandos são
falsos. Aqui estão os resultados possíveis de a || b:
Por exemplo:
( (5 == 5) && (3 > 6) ) // evaluates to false ( true && false ).
( (5 == 5) || (3 > 6) ) // evaluates to true ( true || false ).
Operador condicional ( ? )
// conditional operator
#include <iostream>
using namespace std;
int main (){
int a,b,c;
a=2;
b=7;
c = (a>b) ? a : b;
cout << c;
return 0;
}
Operador condicional ( ? )
O operador vírgula (,) é usado para separar duas ou mais expressões que são incluídas onde
somente uma expressão é esperada. Quando o conjunto de expressões tem que ser avaliado
para um valor, apenas a expressão mais à direita é considerada.
Por exemplo, o seguinte código: a = (b=3, b+2);
Em primeiro lugar, atribui-se o valor 3 a b, e depois b+2 à variável a. Assim, no final, a variável
a contém o valor 5, enquanto b variável contém o valor 3.
Operadores bit a bit ( &, |, ^, ~, <<, >> )
Os operadores bit a bit modificam as variáveis (inteiras) considerando os valores que elas
representam no sistema binário.
operator asm equivalent description
& AND Bitwise AND
| OR Bitwise Inclusive OR
^ XOR Bitwise Exclusive OR
~ NOT Unary complement (bit inversion)
<< SHL Shift Left
>> SHR Shift Right
Operadores de conversão explícita de tipo
Esse operador aceita um parâmetro que pode ser tanto um tipo ou uma variável em si e
retorna o tamanho em bytes desse tipo ou objeto: a = sizeof (char);
a = sizeof (char);
Este código vai atribuir o valor 1 à a, porque char é um tipo de variável com tamanho de um
byte. O valor retornado por sizeof é uma constante, por isso é sempre determinado antes da
execução do programa.
Precedência dos Operadores
Ao escrever expressões complexas com vários operandos, podemos ter algumas dúvidas
sobre qual operando é avaliado primeiro e qual posteriormente. Por exemplo,:
a=5+7%2
Pode suscitar dúvida se ele realmente significa:
a = 5 + (7 % 2) // with a result of 6, or
a = (5 + 7) % 2 // with a result of 0
A resposta correta é a primeira das duas expressões, com um resultado de 6. Há uma ordem
estabelecida com a prioridade de cada operador, e não apenas os aritméticos (aqueles cuja
preferência vem da matemática), mas para todos os operadores que podem aparecer em C++.
Da maior para a menor prioridade, a ordem é a seguinte:
Precedência dos Operadores
Ao escrever expressões complexas com vários operandos, podemos ter algumas dúvidas
sobre qual operando é avaliado primeiro e qual posteriormente. Por exemplo,:
a=5+7%2
Pode suscitar dúvida se ele realmente significa:
a = 5 + (7 % 2) // with a result of 6, or
a = (5 + 7) % 2 // with a result of 0
A resposta correta é a primeira das duas expressões, com um resultado de 6. Há uma ordem
estabelecida com a prioridade de cada operador, e não apenas os aritméticos (aqueles cuja
preferência vem da matemática), mas para todos os operadores que podem aparecer em C++.
Da maior para a menor prioridade, a ordem é a seguinte:
Precedência dos Operadores
Precedência dos Operadores
a = 5 + 7 % 2;
pode ser escrito como:
a = 5 + (7 % 2);
Ou
a = (5 + 7) % 2;
dependendo da operação que deseja executar.
Então, se você quiser escrever expressões complicadas e você não está completamente certo
dos níveis de prioridade, sempre inclua parênteses. Ele também fará seu código mais fácil de
ler.
OBRIGADO
MÃOS À OBRA