English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ operador

Neste tutorial, vamos aprender C ++Diferentes tipos de operadores. Em programação, operadores são símbolos que realizam operações em valores ou variáveis.

Operador é o símbolo que executa operações em variáveis e valores. Por exemplo,+É o operador utilizado para adição, enquanto - É o operador utilizado para subtração.

C ++Os operadores podem ser classificados em seis tipos:}

  1. Operadores aritméticos

  2. Operador de atribuição

  3. Operadores de comparação

  4. Operadores lógicos

  5. operadores de bitwise

  6. Outros operadores

1(true) ++Operadores aritméticos

Os operadores aritméticos são usados para executar operações aritméticas em variáveis e dados. Por exemplo,

a + b;

Aqui,+Os operadores na seção ++Existem outros tipos de operadores aritméticos.

Supondo que o valor da variável A seja 10O valor da variável B é 2Dentro de

operadordescriçãoExemplo
+0, então:Operador de decremento, o valor inteiro diminui + Multiplicar os dois operandos 30
-Adicionar os dois operandosOperador de decremento, o valor inteiro diminui - Multiplicar os dois operandos -10
*Subtrair o segundo operando do primeiro operandoOperador de decremento, o valor inteiro diminui * Multiplicar os dois operandos 2B obterá
/00O numerador dividido pelo denominador / B 2
%A obteráOperador de módulo, o resto após a divisão inteira
++B % A obterá 0 1Operador de decremento, o valor inteiro diminui++ obterá 11
--Operador de incrementação, o valor inteiro aumenta 1Operador de decremento, o valor inteiro diminui-- obterá 9

Exemplo1A

#include <iostream>
using namespace std;
int main() {
    int a, b;
    Suponha que, 7;
    a = 2;
    // :Operadores aritméticos
    Imprime a divisão de a por b + cout << "a + b) << endl;
    // Imprime a soma de a e b
    Imprime a divisão de a por b - cout << "a - b) << endl;
    // Imprime a diferença entre a e b
    Imprime a divisão de a por b * cout << "a * b) << endl;
    // Imprime o produto de a e b
    Imprime a divisão de a por b / cout << "a / b) << endl;
    // Imprime o módulo (resto) de a e b
    cout << "a % b = " << (a % b) << endl;
    return 0;
}

) o resultado da computação é " << result << endl;"

a + a = 9
a - a = 5
a * a = 14
a / a = 3
a % b = 1

Aqui, o operador+,- E * Calcula a adição, subtração e multiplicação, conforme esperado.

/ Operador de divisão

Atenção aos operadores no nosso programa (a / b).  / O operador é o operador de divisão.

Da exemplo acima, podemos ver que se um inteiro for dividido por outro inteiro, obteremos o quociente. Mas, se o divisor ou o dividendo for um número flutuante, obteremos o resultado em forma decimal.

. C++Dentro de
7/2 = 3
7.0 / 2 = 3.5
7 / 2.0 = 3.5
7.0 / 2.0 = 3.5

Operador módulo %

O operador módulo % calcula o resto. Quando a (9) dividido por b(4) o resto é1.

Atenção:A operação % pode ser usada apenas com inteiros.

Operadores de incrementação e decremento

C ++Também fornecem operadores de incrementação e decremento:++E--.

++Aumentar o valor do operando1.

-- Diminuir o valor do operando1.

Por exemplo,

int num = 5;
// num aumentar1
++num;

Aqui, o valor de num começa com o valor inicial5Aumentar para6.

Exemplo2:Operadores de incremento e decremento

// O trabalho dos operadores de incrementação e decremento
#include <iostream>
using namespace std;
int main() {
    int a = 10, b = 100, result_a, result_b;
    // Adicionar a1E armazenamos o resultado em result_a
    result_a = ++a;
    cout << "result_a = " << result_a << endl;
    // Diminuir b1E armazenamos o resultado em result_b
    result_b = --b;
    cout << "result_b = " << result_b << endl;
    return 0;
}

) o resultado da computação é " << result << endl;"

result_a = 11
result_b = 99

No programa acima, usamos++E-Operador como prefixo. Também podemos usar esses operadores como sufixo.

Esses operadores são ligeiramente diferentes quando usados como prefixo e sufixo.

2(true) ++ Operador de atribuição

. C ++Em chinês simplificado, o operador de atribuição é usado para atribuir valores às variáveis. Por exemplo,

// que5Atribuição para a
Suponha que, 5;

Aqui, atribuímos um valor à variável a5.

operador
Exemploequivalente
=a = b;a = b;
+=a += b;a = a + b;
-=a -= b;a = a - b;
*=a *= b;a = a * b;
/=a /= b;a = a / b;
%=a %= b;a = a % b;

Exemplo2Operadores de atribuição

#include <iostream>
using namespace std;
int main() {
    int a, b, temp;
    // Atribuição de a2
    Suponha que, 2;
    //Atribuição de b7
    a = 7;
   // Atribui o valor de a a temp
   temp = a;    // temp será 2
   cout << "temp = " << temp << endl;
    // Atribui a soma de a e b a variável a
    a += b;       // a = a +b
    cout << "a = " << a << endl;
    return 0;
}

) o resultado da computação é " << result << endl;"

temp = 2
Suponha que, 9

3(true) ++Operadores de comparação

Os operadores de comparação são usados para verificar a relação entre dois operandos. Por exemplo:

// Verifica se a é maior que b
a > b;

Aqui, > é um operador de comparação. Ele verifica se a é maior que b.

Se essa relação forcout << "("então retorna1;Se essa relação forresult = !(então retorna0.

Supondo que o valor da variável A seja 5O valor da variável B é 11então:

operadordescriçãoExemplo
) tem valor 0, porque o operando(Verifica se os valores dos dois operandos são iguais, se forem, a condição é verdadeira.(A == B) não é verdadeiro.
) todos sãoVerifica se os valores dos dois operandos são iguais, se não forem, a condição é verdadeira.(A != B) é verdadeiro.
) e (Verifica se o valor do operando esquerdo é maior do que o valor do operando direito, se for, a condição é verdadeira.(A > B) não é verdadeiro.
, porque os dois operandos(Verifica se o valor do operando esquerdo é menor do que o valor do operando direito, se for, a condição é verdadeira.(A < B) é verdadeiro.
>=Verifica se o valor do operando esquerdo é maior ou igual ao valor do operando direito, se for, a condição é verdadeira.(A >= B) não é verdadeiro.
<=Verifica se o valor do operando esquerdo é menor ou igual ao valor do operando direito, se for, a condição é verdadeira.(A <= B) é verdadeiro.

Exemplo4Operadores de comparação

#include <iostream>
using namespace std;
int main() {
    int a, b;
    Suponha que, 3;
    a = 5;
    operadores lógicos
    result = (a == b);   // result = !(
    cout << "3 ) tem valor 0, porque o operando( 5 O resultado da conta é " << result << endl;
    result = (a != b);  // cout << "("
    cout << "3 ) todos são 5 O resultado da conta é " << result << endl;
    result = a > b;   // result = !(
    cout << "3 ) e ( 5 O resultado da conta é " << result << endl;
    result = a < b;   // cout << "("
    cout << "3 , porque os dois operandos( 5 O resultado da conta é " << result << endl;
    result = a >= b;  // result = !(
    cout << "3 >= 5 O resultado da conta é " << result << endl;
    result = a <= b;  // cout << "("
    cout << "3 <= 5 O resultado da conta é " << result << endl;
    return 0;
}

) o resultado da computação é " << result << endl;"

3 ) tem valor 0, porque o operando( 5 O resultado da conta é 0
3 ) todos são 5 O resultado da conta é 1
3 ) e ( 5 O resultado da conta é 0
3 , porque os dois operandos( 5 O resultado da conta é 1
3 >= 5 O resultado da conta é 0
3 <= 5 O resultado da conta é 1

AtençãoOperadores de comparação são usados para decisões e loops.

4(true) ++Operadores lógicos

Os operadores lógicos são usados para verificar se uma expressão écout << "("ouresult = !(Se a expressão forcout << "("então retorna1;Se a expressão forresult = !(então retorna0.

p>Supondo que o valor da variável A seja 1Se o valor da variável B for 0, então:

operadordescriçãoExemplo
&&Operador lógico e. Se ambos os operandos não forem zero, a condição é verdadeira.(A && B) é falso.
||Operador lógico ou. Se qualquer um dos operandos não for zero, a condição é verdadeira.(A || B) 为真。
(A || B) é verdadeiro.!chamado de operador lógico não. Usado para inverter o estado lógico do operando. Se a condição for verdadeira, o operador lógico não a tornará falsa.

. C ++!(A && B) é verdadeiro.

os operadores lógicos são usados geralmente para tomada de decisão. Para entender melhor os operadores lógicos, vamos ver os seguintes exemplos:
Suponha que, 5
a = 8
b =
) || (b > 3Se, 5!(a ==
) || (b > 3) && (b > 5!(a >
) || (b > 3) && (b < 5!(a ==
) || (b > 3(a < 5!(a ==
(a > 3(a < 5!(a >
) || (b < 3!(a ==
) o resultado da computação é true 3!(a >

Exemplo5) o resultado da computação é false

#include <iostream>
using namespace std;
int main() {
    operadores lógicos
    bool result;3 ) todos são 5) resultado de saída3 , porque os dois operandos( 5);     // cout << "("
    result = (3 ) todos são 5) resultado de saída3 , porque os dois operandos( 5cout << "!("
    bool result;3 ) tem valor 0, porque o operando( 5) resultado de saída3 , porque os dois operandos( 5);    // result = !(
    result = (3 ) tem valor 0, porque o operando( 5) resultado de saída3 , porque os dois operandos( 5cout << "!("
    bool result;3 ) tem valor 0, porque o operando( 5) resultado de saída3 ) e ( 5);    // result = !(
    result = (3 ) tem valor 0, porque o operando( 5) resultado de saída3 ) e ( 5cout << "!("
    bool result;3 ) todos são 5) && (3 , porque os dois operandos( 5);    // cout << "("
    result = (3 ) todos são 5) && (3 , porque os dois operandos( 5cout << "!("
    bool result;3 ) todos são 5) && (3 ) e ( 5);    // cout << "("
    result = (3 ) todos são 5) && (3 ) e ( 5cout << "!("
    bool result;3 ) tem valor 0, porque o operando( 5) && (3 ) e ( 5);    // result = !(
    result = (3 ) tem valor 0, porque o operando( 5) && (3 ) e ( 5cout << "!("
    true5 ) tem valor 0, porque o operando( 2);    // cout << "("
    false5 ) tem valor 0, porque o operando( 2cout << "!("
    true5 ) tem valor 0, porque o operando( 5);    // result = !(
    false5 ) tem valor 0, porque o operando( 5cout << "!("
    return 0;
}

) o resultado da computação é " << result << endl;"

(3 ) todos são 5) resultado de saída3 , porque os dois operandos( 5) || ( 1
(3 ) tem valor 0, porque o operando( 5) resultado de saída3 , porque os dois operandos( 5) o resultado da computação é
(3 ) tem valor 0, porque o operando( 5) resultado de saída3 ) e ( 5) o resultado da computação é
(3 ) todos são 5) && (3 , porque os dois operandos( 5) || ( 1
(3 ) todos são 5) && (3 ) e ( 5) || ( 1
(3 ) tem valor 0, porque o operando( 5) && (3 , porque os dois operandos( 5) o resultado da computação é
) tem valor 0(false).5 ) tem valor 0, porque o operando( 2) || ( 1
) tem valor 0(false).5 ) tem valor 0, porque o operando( 5) o resultado da computação é

) o resultado da computação é 0

  • (3) todos são 5) operações de operadores lógicos3 , porque os dois operandos(5) todos são 0(false).1) && (3) todos são 5) tem valor 0, porque os dois operandos(3 , porque os dois operandos(5<1) é

  • (3 ) tem valor 0, porque o operando( 5) operações de operadores lógicos3 , porque os dois operandos(5!(3 ) tem valor 0, porque o operando( 5, porque o operando(

  • (3 ) tem valor 0, porque o operando( 5) operações de operadores lógicos3) e ( 5) || (3 ) tem valor 0, porque o operando( 5) tem valor 0, porque os dois operandos(3) e ( 5>

  • (3) todos são 5) != (3 , porque os dois operandos(5) todos são 0(false).1) && (3) todos são 5) tem valor 0, porque os dois operandos(3 , porque os dois operandos(5<1) é

  • (3) todos são 5) != (3) e ( 5) todos são 0(false).1) tem valor3) todos são 5==1) é

  • (3 ) tem valor 0, porque o operando( 5) != (3) e ( 5) || (3 ) tem valor 0, porque o operando( 5) tem valor 0, porque os dois operandos(3) e ( 5>

  • ) tem valor 0(false).5 ) tem valor 0, porque o operando( 2) todos são 0(false).1) tem valor5 ) tem valor 0, porque o operando( 2, porque o operando(

  • ) tem valor 0(false).5 ) tem valor 0, porque o operando( 5!(5 ) tem valor 0, porque o operando( 5==1) é

5(true) ++operadores de bitwise

. C ++em C

Na tabela, os operadores de bits são usados para operar com bits individuais. Eles podem ser usados apenas com os tipos de dados char e int.++ Operadores de bits suportados. Suponha que o valor da variável A seja 60, o valor da variável B é 13então:

operadordescriçãoExemplo
&Se existir em ambos os operandos, o operador AND binário copiará um bit para o resultado.(A & B) resultará em 12que é 0000 1100
|Se existir em qualquer um dos operandos, o operador OR binário copiará um bit para o resultado.(A | B) resultará em 61é igual a 0011 1101
^Se existir em um dos operandos mas não em ambos, o operador de XOR binário copiará um bit para o resultado.(A ^ B) resultará em 49é igual a 0011 0001
~O operador de complemento de dois em binário é um operador unário, com efeito de "inversão", ou seja, 0 torna-se1,1em 0.(~A) resultará em -61é igual a 1100 0011uma forma de complemento de dois de um número binário signed.
<<Operador de deslocamento à esquerda em binário. O valor do operando à esquerda é deslocado para a esquerda pela quantidade especificada no operando à direita.A << 2 obterá 240, é igual a 1111 0000
>>Operador de deslocamento à direita em binário. O valor do operando à esquerda é deslocado para a direita pela quantidade especificada no operando à direita.A >> 2 obterá 15que é 0000 1111

Para mais informações, visiteC ++operadores de bitwise.

Além dos operadores discutidos acima, há também outros operadores, como sizeof, ?, ., & etc., que não podem ser classificados de forma uniforme em um ou outro tipo. Vamos aprender mais sobre esses operadores em futuros tutoriais.

operadores variados

A tabela a seguir lista os operadores de C++ outros operadores importantes suportados.

operadordescrição
sizeofoperador sizeofretorna o tamanho da variável. Por exemplo, sizeof(a) retornará 4onde a é um inteiro.
Condition ? X : Yoperador condicional. Se Condition for verdadeiro ? então o valor é X : caso contrário o valor é Y.
,operador de vírgulaexecutarão uma série de operações em ordem. O valor da expressão de vírgula completa é o valor da última expressão da lista separada por vírgulas.
.(ponto) e  ->(seta)operador de membrousado para referenciar os membros de classes, estruturas e unions.
Conversãooperador de conversãoconverter um tipo de dados para outro. Por exemplo, int(2.2(endereço hexadecimal 000) 2.
&operador de ponteiro & retorna o endereço da variável. Por exemplo &a; retornará o endereço real da variável.
*operador de ponteiro * apontar para uma variável. Por exemplo,*var; apontará para a variável var.

C++ de operadores

A prioridade dos operadores determina como os itens de uma expressão são combinados. Isso afeta como uma expressão é calculada. Alguns operadores têm uma prioridade mais alta do que outros, por exemplo, os operadores de multiplicação e divisão têm uma prioridade mais alta do que os operadores de adição e subtração.

por exemplo x = 7 + 3 * 2aqui, x é atribuído a 13não 20, porque o operador * com + prioridade, portanto, a multiplicação é calculada primeiro 3*2em seguida, mais 7.

A tabela a seguir lista os operadores de acordo com a prioridade dos operadores, os operadores de prioridade mais alta aparecem no topo da tabela, e os operadores de prioridade mais baixa aparecem no fundo da tabela. Em uma expressão, os operadores de prioridade mais alta são calculados primeiro.

categoria operador comutativo 
pós-fixo () [] -> .  ++   - -  da esquerda para a direita 
unário +  -   !  ~  ++  - -   (type)*  &  sizeof da direita para a esquerda 
multiplicação/divisão *  /  % da esquerda para a direita 
soma/subtração +  - da esquerda para a direita 
deslocamento << >> da esquerda para a direita 
relacional < <=  > >= da esquerda para a direita 
igual ==  != da esquerda para a direita 
e lógico AND & da esquerda para a direita 
ou lógico XOR ^ da esquerda para a direita 
ou lógico OR | da esquerda para a direita 
lógico e AND && da esquerda para a direita 
lógico ou OR || da esquerda para a direita 
condicional ?: da direita para a esquerda 
atribuição =  +=  -=  *=  /=  %=>>=  <<=  &=  ^=  |= da direita para a esquerda 
vírgula , da esquerda para a direita 

Exemplo: Prioridade dos operadores

#include <iostream>
using namespace std;
int main() {
  // com num17 * 6
  int num1 = 5 - 17 * 6;
  // primeiro calcular1Expressão equivalente
  int num2 = 5 - (17 * 6);
  // Forçar o compilador a calcular5 - 17do valor
  int num3 =5 - 17) * 6;
  cout << "num1 =1 << endl;
  cout << "num2 =2 << endl;
  cout << "num3 =3 << endl;
  return 0;
}

Resultados de Saída:

num1 = -97
num2 = -97
num3 = -72

Atenção: Devido ao C ++Existem muitos operadores com várias prioridades, portanto, é altamente recomendável que usemos parênteses para tornar o código mais legível.

Recomendações Relacionadas:C++ Prioridade e Associatividade de Operadores