Operadores em C ++

Um operador é um símbolo que diz ao compilador para realizar manipulações matemáticas ou lógicas específicas. C ++ é rico em operadores integrados e fornece os seguintes tipos de operadores -

  • Operadores aritméticos
  • Operadores Relacionais
  • Operadores lógicos
  • Operadores bit a bit
  • Operadores de atribuição
  • Operadores diversos

Este capítulo examinará os operadores aritméticos, relacionais, lógicos, bit a bit e outros, um por um.

Operadores aritméticos

Existem os seguintes operadores aritméticos suportados pela linguagem C ++ -

Suponha que a variável A tenha 10 e a variável B tenha 20, então -

Mostrar exemplos

Operador Descrição Exemplo
+ Adiciona dois operandos A + B dará 30
- Subtrai o segundo operando do primeiro A - B dará -10
* Multiplica ambos os operandos A * B dará 200
/ Divide numerador por de-numerador B / A dará 2
% Operador de Módulo e o restante após uma divisão inteira B% A dará 0
++ Operador de incremento , aumenta o valor inteiro em um A ++ dará 11
- Operador de decremento , diminui o valor inteiro em um A-- dará 9

Operadores Relacionais

Existem seguintes operadores relacionais suportados pela linguagem C ++

Suponha que a variável A tenha 10 e a variável B tenha 20, então -

Mostrar exemplos

Operador Descrição Exemplo
== Verifica se os valores dos dois operandos são iguais ou não, se sim a condição torna-se verdadeira. (A == B) não é verdade.
! = Verifica se os valores de dois operandos são iguais ou não; se os valores não são iguais, a condição se torna verdadeira. (A! = B) é verdade.
> Verifica se o valor do operando esquerdo é maior que o valor do operando direito, se sim, a condição torna-se verdadeira. (A> B) não é verdade.
< Verifica se o valor do operando esquerdo é menor que o valor do operando direito; se sim, a condição torna-se verdadeira. (A <B) é verdade.
> = Verifica se o valor do operando esquerdo é maior ou igual ao valor do operando direito, se sim a condição torna-se verdadeira. (A> = B) não é verdade.
<= Verifica se o valor do operando esquerdo é menor ou igual ao valor do operando direito; em caso afirmativo, a condição torna-se verdadeira. (A <= B) é verdadeiro.

Operadores lógicos

Existem os seguintes operadores lógicos suportados pela linguagem C ++.

Suponha que a variável A tenha 1 e a variável B tenha 0, então -

Mostrar exemplos

Operador Descrição Exemplo
&& Operador lógico chamado AND. Se ambos os operandos forem diferentes de zero, a condição se torna verdadeira. (A && B) é falso.
|| Operador lógico ou chamado. Se qualquer um dos dois operandos for diferente de zero, a condição se torna verdadeira. (A || B) é verdade.
! Operador lógico chamado NOT. Use para reverter o estado lógico de seu operando. Se uma condição for verdadeira, o operador lógico NOT tornará falso. ! (A && B) é verdade.

Operadores bit a bit

O operador bit a bit funciona em bits e executa a operação bit a bit. As tabelas de verdade para &, | e ^ são as seguintes -

p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

Suponha que A = 60; e B = 13; agora em formato binário serão os seguintes -

A = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

A | B = 0011 1101

A ^ B = 0011 0001

~ A = 1100 0011

Os operadores bit a bit suportados pela linguagem C ++ estão listados na tabela a seguir. Suponha que a variável A tenha 60 e a variável B tenha 13, então -

Mostrar exemplos

Operador Descrição Exemplo
E O operador Binário AND copia um bit para o resultado se ele existir em ambos os operandos. (A e B) dará 12, que é 0000 1100
| O operador binário OR copia um bit se ele existir em qualquer operando. (A | B) dará 61, que é 0011 1101
^ O operador binário XOR copia o bit se for definido em um operando, mas não em ambos. (A ^ B) dará 49, que é 0011 0001
~ O operador de complemento binários é unário e tem o efeito de 'inverter' bits. (~ A) dará -61 que é 1100 0011 na forma de complemento de 2 devido a um número binário com sinal.
<< Operador binário de deslocamento à esquerda. O valor dos operandos à esquerda é movido para a esquerda pelo número de bits especificado pelo operando à direita. Um << 2 dará 240, que é 1111 0000
>> Operador binário de deslocamento à direita. O valor dos operandos à esquerda é movido para a direita pelo número de bits especificado pelo operando à direita. Um >> 2 dará 15, que é 0000 1111

Operadores de atribuição

Existem os seguintes operadores de atribuição suportados pela linguagem C ++ -

Mostrar exemplos

Operador Descrição Exemplo
= Operador de atribuição simples, atribui valores de operandos do lado direito para operando do lado esquerdo. C = A + B irá atribuir o valor de A + B em C
+ = Adicionar operador de atribuição AND, adiciona o operando direito ao operando esquerdo e atribui o resultado ao operando esquerdo. C + = A é equivalente a C = C + A
- = Subtrai o operador de atribuição AND, ele subtrai o operando direito do operando esquerdo e atribui o resultado ao operando esquerdo. C - = A é equivalente a C = C - A
* = Operador de atribuição Multiply AND, multiplica o operando direito pelo operando esquerdo e atribui o resultado ao operando esquerdo. C * = A é equivalente a C = C * A
/ = Operador de atribuição Dividir AND, divide o operando esquerdo com o operando direito e atribui o resultado ao operando esquerdo. C / = A é equivalente a C = C / A
% = Módulo E operador de atribuição, toma o módulo usando dois operandos e atribui o resultado ao operando esquerdo. C% = A é equivalente a C = C% A
<< = Deslocamento para a esquerda E operador de atribuição. C << = 2 é igual a C = C << 2
>> = Deslocamento à direita E operador de atribuição. C >> = 2 é igual a C = C >> 2
& = Operador de atribuição AND bit a bit. C & = 2 é igual a C = C & 2
^ = OR exclusivo bit a bit e operador de atribuição. C ^ = 2 é igual a C = C ^ 2
| = OR inclusivo bit a bit e operador de atribuição. C | = 2 é igual a C = C | 2

Operadores diversos

A tabela a seguir lista alguns outros operadores compatíveis com C ++.

Sr. Não Operador e descrição
1

sizeof

operador sizeof retorna o tamanho de uma variável. Por exemplo, sizeof (a), onde 'a' é um número inteiro e retornará 4.

2

Condition ? X : Y

Operador condicional (?) . Se a Condição for verdadeira, ela retornará o valor de X, caso contrário, retornará o valor de Y.

3

,

O operador vírgula faz com que uma sequência de operações seja executada. O valor de toda a expressão de vírgula é o valor da última expressão da lista separada por vírgulas.

4

. (dot) and -> (arrow)

Operadores membros são usados ​​para fazer referência a membros individuais de classes, estruturas e uniões.

5

Cast

Os operadores de conversão convertem um tipo de dados em outro. Por exemplo, int (2,2000) retornaria 2.

6

&

Operador de ponteiro e retorna o endereço de uma variável. Por exemplo, & a; fornecerá o endereço real da variável.

7

*

Operador de ponteiro * é um ponteiro para uma variável. Por exemplo * var; irá apontar para uma variável var.

Precedência de operadores em C ++

A precedência do operador determina o agrupamento de termos em uma expressão. Isso afeta como uma expressão é avaliada. Certos operadores têm precedência mais alta do que outros; por exemplo, o operador de multiplicação tem precedência mais alta do que o operador de adição -

Por exemplo, x = 7 + 3 * 2; aqui, x é atribuído a 13, não 20, porque o operador * tem precedência mais alta que +, então ele primeiro é multiplicado por 3 * 2 e, em seguida, é adicionado a 7.

Aqui, os operadores com a precedência mais alta aparecem na parte superior da tabela, aqueles com a mais baixa aparecem na parte inferior. Em uma expressão, os operadores de precedência mais altos serão avaliados primeiro.

Mostrar exemplos

Categoria  Operador  Associatividade 
Postfix  () [] ->. ++ - -   Da esquerda para direita 
Unário  + -! ~ ++ - - (tipo) * & sizeof  Direita para esquerda 
Multiplicativo   * /%  Da esquerda para direita 
Aditivo   + -  Da esquerda para direita 
Mudança   << >>  Da esquerda para direita 
Relacional   <<=>> =  Da esquerda para direita 
Igualdade   ==! =  Da esquerda para direita 
E bit a bit  Da esquerda para direita 
XOR bit a bit  Da esquerda para direita 
OR bit a bit  Da esquerda para direita 
E lógico  &&  Da esquerda para direita 
OR lógico  ||  Da esquerda para direita 
Condicional  ?:  Direita para esquerda 
Tarefa  = + = - = * = / =% = >> = << = & = ^ = | =  Direita para esquerda 
Vírgula  Da esquerda para direita