Operatores em C++ com exemplo: o que é, tipos e programas
Quais são Operatores?
Um operador é um símbolo usado para executar operações em operandos. Um operador opera operandos. As operações podem ser matemáticas ou lógicas. Existem diferentes tipos de operadores em C++ para executar diferentes operações.
Considere a seguinte operação:
a = x + y;
Na declaração acima, x e y são os operandos enquanto + é um operador de adição. Quando o C++ o compilador encontrar a instrução acima, ele adicionará x e y e armazenará o resultado na variável a.
Tipos de Operatores em C++
Existem principalmente 6 tipos diferentes de operadores em C++
- Aritmética Operatoros
- Relacional Operatoros
- lógico Operatoros
- Bit a bit Operatoros
- Atribuição Operatoros
- Outros Operatoros
Aritmética Operatoros
Eles são os tipos de operadores usados para realizar operações matemáticas/aritméticas. Eles incluem:
Operator | Descrição |
---|---|
+ operador de adição | Adiciona aos operandos. |
– operador de subtração | Subtrai 2nd operando de 1st operando. |
* operador de multiplicação | Multiplica 2 operandos. |
/ operador de divisão. | Divide o numerador pelo denominador. |
% operador módulo | Retorna o resto após a divisão. |
++ operador de incremento | Aumenta um valor inteiro em 1. |
- operador de decremento. | Diminui um valor inteiro em 1. |
Por exemplo:
#include <iostream> using namespace std; int main() { int a = 11; int b = 5; int c; cout << "a + b is :" << a+b << endl; //11+5 cout << "a - b is :" << a-b << endl; //11-5 cout << "a * b is :" << a*b << endl; //11*5 cout << "a / b is :" << a/b << endl; //11/5 cout << "a % b is :" << a%b << endl; //11%5 cout << "a++ is :" << a++ << endl; //11++ cout << "a-- is :" << a-- << endl; //12-- return 0; }
Saída:
Aqui está uma captura de tela do código:
Explicação do código:
- Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
- Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
- Chamando a função main() dentro da qual deve ser adicionada a lógica do programa. O { marca o início do corpo da função main().
- Declarando uma variável inteira a e inicializando-a com 11.
- Declarando uma variável inteira b e inicializando-a com 5.
- Declarando uma variável inteira c.
- Imprimindo o valor da operação a+b junto com outro texto no console.
- Imprimindo o valor da operação ab junto com outro texto no console.
- Imprimindo o valor da operação a*b junto com outro texto no console.
- Imprimindo o valor da operação a/b junto com outro texto no console.
- Imprimindo o valor da operação a%b junto com outro texto no console.
- Imprimindo o valor da operação a++ junto com outro texto no console.
- Imprimindo o valor da operação a– junto com outro texto no console.
- A função main() deve retornar um valor se o programa funcionar bem.
- Fim do corpo da função main().
Relacional Operatoros
Esses tipos de operadores realizam comparações em operandos. Por exemplo, pode ser necessário saber qual operando é maior que o outro ou menor que o outro. Eles incluem:
Operator | Descrição |
---|---|
== igual ao operador. | Verifica a igualdade de dois valores de operando. |
!= diferente do operador | Verifica a igualdade de dois valores de operando. |
> ótimo que operador | Verifica se o valor do operando esquerdo é maior que o valor do operando direito. |
<menos que operador. | Verifica se o valor do operando esquerdo é menor que o valor do operando direito. |
>= maior ou igual ao operador | Verifica se o valor do operando esquerdo é maior ou igual ao valor do operando direito. |
<= menor ou igual ao operador. | Verifica se o valor do operando esquerdo é menor ou igual ao valor do operando direito. |
Por exemplo:
#include <iostream> using namespace std; int main() { int a = 11; int b = 5; cout << "a=11, b=5" << endl; if (a == b) { cout << "a == b is true" << endl; } else { cout << " a == b is false" << endl; } if (a < b) { cout << "a < b is true" << endl; } else { cout << "a < b is false" << endl; } if (a > b) { cout << "a > b is true" << endl; } else { cout << "a > b is false" << endl; } return 0; }
Saída:
Aqui está uma captura de tela do código:
Explicação do código:
- Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
- Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
- Chamando a função main() dentro da qual deve ser adicionada a lógica do programa. O { marca o início do corpo da função main().
- Declarando uma variável inteira a e inicializando-a com 11.
- Declarando uma variável inteira b e inicializando-a com 5.
- Imprimindo algum texto no console informando os valores das variáveis a e b.
- Executando a operação aritmética, a==b em uma declaração if de tomada de decisão para saber se é verdadeira ou falsa. O { marca o início do corpo da instrução if.
- Texto para imprimir no console se a operação a==b for verdadeira. O endl é um C++ palavra-chave para a linha final. Ele empurra o cursor para começar a imprimir na próxima linha. O } marca o final do corpo da instrução if.
- A outra parte da instrução if acima. Ele afirma o que fazer se a operação a==b for falsa.
- Texto para imprimir no console se a operação a==b for falsa. O endl é um C++ palavra-chave para a linha final. Ele empurra o cursor para começar a imprimir na próxima linha. O } marca o final do corpo da instrução else.
- Realizando a operação aritmética,
- Texto para imprimir no console se a operação for C++ palavra-chave para a linha final. Ele empurra o cursor para começar a imprimir na próxima linha. O } marca o final do corpo da instrução if.
- A outra parte da instrução if acima. Ele indica o que fazer se a operação for
- Texto para imprimir no console se a operação for C++ palavra-chave para a linha final. Ele empurra o cursor para começar a imprimir na próxima linha. O } marca o final do corpo da instrução else.
- Executar a operação aritmética a>b em uma declaração de tomada de decisão if para saber se é verdadeira ou falsa. O { marca o início do corpo da instrução if.
- Texto para imprimir no console se a operação a>b for verdadeira. O endl é um C++ palavra-chave para a linha final. Ele empurra o cursor para começar a imprimir na próxima linha. O } marca o final do corpo da instrução if.
- A outra parte da instrução if acima. Afirma o que fazer se a operação a>b for falsa.
- Texto para imprimir no console se a operação a>b for falsa. O endl é um C++ palavra-chave para a linha final. Ele empurra o cursor para começar a imprimir na próxima linha. O } marca o final do corpo da instrução else.
- A função main() deve retornar um valor se o programa funcionar bem.
- Fim do corpo da função main().
lógico Operatoros
A Operadores lógicos combinar duas/mais restrições/condições. Os operadores lógicos também complementam a avaliação da condição original em consideração. Eles incluem:
Operator | Descrição |
---|---|
&& operador AND lógico. | A condição é verdadeira se ambos os operandos não forem zero. |
|| operador lógico OR. | A condição é verdadeira se um dos operandos for diferente de zero. |
! operador lógico NOT. | Inverte o estado lógico do operando. Se o operando for verdadeiro, o ! operador torna-o falso. |
Por exemplo:
#include <iostream> using namespace std; int main() { int a = 5, b = 2, c = 6, d = 4; if (a == b && c > d) cout << "a equals to b AND c is greater than d\n"; else cout << "AND operation returned false\n"; if (a == b || c > d) cout << "a equals to b OR c is greater than d\n"; else cout << "Neither a is equal to b nor c is greater than d\n"; if (!b) cout << "b is zero\n"; else cout << "b is not zero"; return 0; }
Saída:
Aqui está uma captura de tela do código:
Explicação do código:
- Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
- Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
- Chamando a função main() dentro da qual deve ser adicionada a lógica do programa.
- O { marca o início do corpo da função main().
- Declarar 4 variáveis inteiras a, b, c e d e atribuir-lhes valores diferentes.
- Usando o operador && (AND) dentro da instrução if. Ele une duas condições, o valor de a é igual ao valor de b e o valor de a é maior que o valor de b. A primeira condição é falsa, a segunda condição é verdadeira. False&&true é False, portanto, o resultado de if é falso.
- Texto a ser impresso no console se a instrução if acima for verdadeira. Isso não será executado.
- Parte a ser executada se a instrução if acima for falsa.
- Texto a ser impresso no console se a instrução if for falsa. Isso será executado.
- Usando o || Operador (OR) dentro de uma instrução if. Ele une duas condições, o valor de a é igual ao valor de b e o valor de a é maior que o valor de b. A primeira condição é falsa, a segunda condição é verdadeira. False||true é True, portanto, o resultado de if é verdadeiro.
- Texto a ser impresso no console se a instrução if acima for verdadeira. Isso será executado.
- Parte a ser executada se a instrução if acima for falsa.
- Texto a ser impresso no console se a instrução if for falsa. Isso não será executado.
- Verificando se o valor da variável é 0.
- Texto a ser impresso no console se a instrução if acima for verdadeira. Isso não será executado.
- Parte a ser executada se a instrução if acima for falsa.
- Texto a ser impresso no console se a instrução if for falsa. Isso será executado.
- A função main() deve retornar um valor se o programa funcionar bem.
- Fim do corpo da função main().
Bit a bit Operatoros
Operadores bit a bit executar operações em nível de bit em operandos. Primeiro, os operadores são convertidos para nível de bit e depois as operações são executadas nos operandos. Quando operações aritméticas como adição e subtração são feitas em nível de bit, os resultados podem ser alcançados mais rapidamente. Eles incluem:
Operator | Descrição |
---|---|
& (E bit a bit). | São necessários 2 números (operandos) e então executa AND em cada bit de dois números. Se ambos forem 1, AND retornará 1, caso contrário, 0. |
| (OU bit a bit) | Pega 2 números (operandos) e executa OR em cada bit de dois números. Ele retorna 1 se um dos bits for 1. |
^ (o XOR bit a bit) | Pega 2 números (operandos) e executa XOR em cada bit de 2 números. Ele retorna 1 se ambos os bits forem diferentes. |
<< (deslocamento para a esquerda) | Pega dois números e depois desloca para a esquerda os bits do primeiro operando. O segundo operando determina o total de lugares a serem deslocados. |
>> (deslocamento para a direita) | Pega dois números e desloca para a direita os bits do primeiro operando. O segundo operando determina o número de casas a serem deslocadas. |
~ (NÃO bit a bit). | Pega o número e inverte todos os seus bits. |
#include <iostream> using namespace std; int main() { unsigned int p = 60; // 60 = 0011 1100 unsigned int q = 13; // 13 = 0000 1101 int z = 0; z = p & q; cout << "p&q is : " << z << endl; // 12 = 0000 1100 z = p | q; cout << "p|q is : " << z << endl; // 61 = 0011 1101 z = p ^ q; cout << "p^q is : " << z << endl; // 49 = 0011 0001 z = ~p; cout << "~p is : " << z << endl; // -61 = 1100 0011 z = p << 2; cout << "p<<2 is: " << z << endl; // 240 = 1111 0000 z = p >> 2; cout << "p>>2 is : " << z << endl; // 15 = 0000 1111 return 0; }
Saída:
Aqui está uma captura de tela do código:
Explicação do código:
- Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
- Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
- Chamando a função main() dentro da qual deve ser adicionada a lógica do programa. O { marca o início do corpo da função main().
- Declarar uma variável inteira sem sinal p e atribuir a ela um valor de 60, que é 0011 1100 em binário.
- Declarar uma variável inteira sem sinal q e atribuir a ela um valor de 13, que é 0000 1101 em binário.
- Declarar uma variável inteira z e inicializá-la com 0.
- Executando a operação & (AND) bit a bit nas variáveis p e q e armazenando o resultado na variável z.
- Imprimindo o resultado da operação acima no console junto com outro texto.
- Executando o bit a bit | (OR) operação nas variáveis peq e armazenamento do resultado na variável z.
- Imprimindo o resultado da operação acima no console junto com outro texto.
- Executando a operação bit a bit ^ (XOR) nas variáveis peq e armazenando o resultado na variável z.
- Imprimindo o resultado da operação acima no console junto com outro texto.
- Executando a operação bit a bit ~ (NOT) nas variáveis peq e armazenando o resultado na variável z.
- Imprimindo o resultado da operação acima no console junto com outro texto.
- Realizando a operação de deslocamento para a esquerda na variável p e armazenando o resultado na variável z.
- Imprimindo o resultado da operação acima no console junto com outro texto.
- Executando a operação de deslocamento para a direita na variável p e armazenando o resultado na variável z.
- Imprimindo o resultado da operação acima no console junto com outro texto.
- A função main() deve retornar um valor se o programa funcionar bem.
- Fim do corpo da função main().
Atribuição Operatoros
Operadores de atribuição atribuir valores a variáveis. O operando/variável é adicionado ao lado esquerdo do operador enquanto o valor é adicionado ao lado direito do operador. A variável e o valor devem pertencer ao mesmo tipo de dados, caso contrário, o C++ compilador gerará erro.
Por exemplo:
x = 5;
No exemplo acima, x é a variável/operando, = é o operador de atribuição enquanto 5 é o valor. Aqui estão os operadores de atribuição populares em C++:
Operator | Descrição |
---|---|
= (operador de atribuição simples) | Atribui o valor à direita à variável à esquerda. |
+= (operador de adição AND de atribuição) | Adiciona o valor do operando direito ao operando esquerdo e, em seguida, atribui o resultado à variável à esquerda. |
-= (operador de subtração AND de atribuição) | Subtrai o valor do operando direito do operando esquerdo e, em seguida, atribui o resultado à variável à esquerda. |
*= (operador de multiplicação AND de atribuição) | Multiplica o valor do operando esquerdo pelo operando direito e, em seguida, atribui o resultado à variável à esquerda. |
/= (operador de divisão E atribuição) | Divide o valor do operando esquerdo pelo operando direito e atribui o resultado à variável à esquerda. |
Por exemplo:
#include <iostream> using namespace std; int main() { int x = 5; cout << "Initial value of x is " << x << "\n"; x += 5; cout << "x += 5 gives :" << x << "\n"; x -= 5; cout << "x -= 5 gives : " << x << "\n"; x *= 5; cout << "x *= 5 gives :" << x << "\n"; x /= 5; cout << "x /= 5 gives : " << x << "\n"; return 0; }
Saída:
Aqui está uma captura de tela do código:
Explicação do código:
- Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
- Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
- Chamando a função main() dentro da qual deve ser adicionada a lógica do programa.
- O { marca o início do corpo da função main().
- Declarar uma variável inteira x e atribuir a ela o valor 5.
- Imprimindo o valor da variável x junto com outro texto no console. O \n é um caractere de nova linha. Move o cursor para a próxima linha durante a impressão.
- Adicionando 5 ao valor da variável x e atribuindo o resultado à variável x.
- Imprimindo o valor da variável x no console junto com outro texto.
- Subtraindo 5 do valor de x e atribuindo o resultado à variável x.
- Imprimindo o valor da variável x no console junto com outro texto.
- Multiplicando o valor da variável x por 5 e atribuindo o resultado à variável x.
- Imprimindo o valor da variável x no console junto com outro texto.
- Dividindo o valor da variável x por 5 e atribuindo o resultado à variável x.
- Imprimindo o valor da variável x no console junto com outro texto.
- A função main() deve retornar um valor se o programa funcionar bem.
- Fim do corpo da função main().
Outros Operatoros
Outros Operatoros incluir operador sizeof, vírgula Operator, condicional Operator, e Operaprecedência.
Vamos discutir outros operadores suportados por C++:
operador sizeof
Este operador determina o tamanho de uma variável. Use o operador sizeof para determinar o tamanho de um tipo de dados.
Por exemplo:
#include <iostream> using namespace std; int main() { cout<<"Size of int : "<< sizeof(int) << "\n"; cout<<"Size of char : " << sizeof(char) << "\n"; cout<<"Size of float : " << sizeof(float) << "\n"; cout<<"Size of double : " << sizeof(double) << "\n"; return 0; }
Saída:
Aqui está uma captura de tela do código:
Explicação do código:
- Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
- Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
- Chamando a função main() dentro da qual deve ser adicionada a lógica do programa. O { marca o início do corpo da função main().
- Determinar o tamanho do tipo de dados inteiro usando o operador sizeof e imprimi-lo junto com outro texto no console.
- Determinar o tamanho do tipo de dados de caractere usando o operador sizeof e imprimi-lo junto com outro texto no console.
- Determinar o tamanho do tipo de dados float usando o operador sizeof e imprimi-lo junto com outro texto no console.
- Determinar o tamanho do tipo de dados float usando o operador sizeof e imprimi-lo junto com outro texto no console.
- A função main() deve retornar um valor se o programa funcionar bem.
- Fim do corpo da função main().
Vírgula Operator
A operador vírgula (,) aciona a execução de uma sequência de operações. Expressa o primeiro operando e descarta o resultado. A seguir, avalia o segundo operando e retorna o valor e o tipo.
#include <iostream> using namespace std; int main() { int x, y; y = 100; x = (y++, y + 10, 99 + y); cout << x; return 0; }
Saída:
Aqui está uma captura de tela do código:
Explicação do código:
- Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
- Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
- Chamando a função main() dentro da qual deve ser adicionada a lógica do programa. O { marca o início do corpo da função main().
- Declarando duas variáveis inteiras x e y.
- Atribuindo à variável ya o valor de 100.
- Aumentando o valor de y e atribuindo o resultado à variável x. Começa com y em 100 e depois aumenta para 101 (y++). Em seguida, y é adicionado a 10. Finalmente, y, ainda em 101, é adicionado a 99, resultando em 200. x agora é 200.
- Imprimindo o valor da variável x no console.
- A função main() deve retornar um valor se o programa funcionar bem.
- Fim do corpo da função main().
Condicional Operator
Este operador avalia uma condição e atua com base no resultado da avaliação.
Sintaxe:
Condition ? Expression2 : Expression3;
parâmetros:
- A Condição é a condição que deve ser avaliada.
- Expressão1 é a expressão a ser executada se a condição for verdadeira.
- Expression3 é a expressão a ser executada se a condição for falsa.
Por exemplo:
#include <iostream> using namespace std; int main() { int a = 1, b; b = (a < 10) ? 2 : 5; cout << "value of b: " << b << endl; return 0; }
Saída:
Aqui está uma captura de tela do código:
Explicação do código:
- Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
- Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
- Chamando a função main() dentro da qual deve ser adicionada a lógica do programa. O { marca o início do corpo da função main().
- Declarando dois variáveis inteiras a e b. A variável a recebeu o valor 1.
- Atribuindo valor à variável b. Se a variável a for menor que 10, b receberá o valor 2, caso contrário, b receberá o valor 5.
- Imprimindo o valor da variável b no console junto com outro texto.
- A função main() deve retornar um valor se o programa funcionar bem.
- Fim do corpo da função main().
OperaPrecedência
Uma única operação pode ter mais de um operador. Nesse caso, a precedência do operador determina aquele avaliado primeiro.
A lista a seguir mostra a precedência dos operadores em C++, com precedência decrescente da esquerda para a direita:
(), [],*, /, %, +/-, << , >>, == , !=, ^, |, &&, ||, ?:, =, +=, -=, *= , /=
Resumo
- OperaOs símbolos são usados para realizar operações lógicas e aritméticas.
- Os operadores aritméticos nos ajudam a realizar várias operações aritméticas em operandos.
- Os operadores relacionais nos ajudam a realizar várias operações de comparação em operandos.
- Os operadores lógicos nos ajudam a realizar várias operações lógicas nos operandos.
- Operadores bit a bit ajude-nos a realizar operações bit a bit em operandos.
- Os operadores de atribuição nos ajudam a realizar várias operações aritméticas em operandos.
- O operador sizeof retorna o tamanho de uma variável ou tipo de dados.
- O operador vírgula executa uma sequência de operações.
- O operador condicional avalia uma condição e atua com base no resultado.