Operatores em C++Tipos com exemplos

⚡ Resumo Inteligente

Operatores em C++ Os operadores são símbolos que realizam operações em operandos, que variam de aritméticas e de comparação a operações lógicas, bit a bit e de atribuição. Este recurso explica cada categoria de operador com programas de exemplo executáveis, resultados e as regras de precedência que determinam a ordem de avaliação.

  • Aritmética Operatores: Realizar operações matemáticas como adição, subtração e multiplicação.tracoperações de multiplicação, divisão, módulo, incremento e decremento em operandos numéricos.
  • ⚖️ Relacional Operatores: Compara dois operandos usando verificações de igualdade e ordenação, retornando um resultado verdadeiro ou falso.
  • 🔗 lógico Operatores: Combine ou inverta condições com AND, OR e NOT para controlar as decisões do programa.
  • 🔢 Bit a bit Operatores: Operate diretamente em bits individuais usando operações AND, OR, XOR, NOT e de deslocamento para um trabalho de baixo nível mais rápido.
  • 📝 Tarefa e Outros Operatores: Atribuição de valores, além de sizeof, vírgula e o operador condicional, cada um demonstrado com exemplos de saída.
  • 📊 OperaPrecedência de tor: As regras de precedência determinam qual operador em uma expressão complexa é avaliado primeiro.

Operatores em C++

Quais são Operatores?

Um operador é um símbolo usado para realizar operações em operandos. Um operador opera sobre operandos, e 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++:

  1. Aritmética Operatoros
  2. Relacional Operatoros
  3. lógico Operatoros
  4. Bit a bit Operatoros
  5. Atribuição Operatoros
  6. Outros Operatoros

Comecemos pelos operadores aritméticos, a categoria mais comumente usada.

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 dois operandos.
– subtracoperador de ção Subtracts 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:

Aritmética Operatoros

Aqui está uma captura de tela do código:

Aritmética Operatoros

Code Explicação:

  1. Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
  2. Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
  3. Chamando a função main(), dentro da qual a lógica do programa deve ser adicionada. O { marca o início do corpo da função main().
  4. Declarando uma variável inteira a e inicializando-a com 11.
  5. Declarando uma variável inteira b e inicializando-a com 5.
  6. Declarando uma variável inteira c.
  7. Exibe o valor da operação a+b juntamente com outro texto no console.
  8. Exibindo o valor da operação ab junto com outros textos no console.
  9. Exibindo o valor da operação a*b juntamente com outro texto no console.
  10. Exibição do valor da operação a/b juntamente com outro texto no console.
  11. Exibindo o valor da operação a%b juntamente com outro texto no console.
  12. Exibindo o valor da operação a++ junto com outro texto no console.
  13. Exibindo o valor da operação a– juntamente com outros textos no console.
  14. A função main() deve retornar um valor se o programa funcionar bem.
  15. 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
operador de igualdade == Verifica a igualdade de dois valores de operando.
!= diferente do operador Verifica a desigualdade entre dois valores operandos.
> operador maior que Verifica se o valor do operando da esquerda é maior que o valor do operando da direita.
< operador menor que Verifica se o valor do operando da esquerda é menor que o valor do operando da direita.
>= maior ou igual ao operador Verifica se o valor do operando da esquerda é maior ou igual ao valor do operando da direita.
operador <= menor ou igual a Verifica se o valor do operando da esquerda é menor ou igual ao valor do operando da direita.

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:

Relacional Operatoros

Aqui está uma captura de tela do código:

Relacional Operatoros

Code Explicação:

  1. Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
  2. Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
  3. Chamando a função main() dentro da qual deve ser adicionada a lógica do programa.
  4. Declarando uma variável inteira a e inicializando-a com 11.
  5. Declarando uma variável inteira b e inicializando-a com 5.
  6. Imprimindo algum texto no console informando os valores das variáveis ​​a e b.
  7. Verificar se a é igual a b usando uma instrução condicional (if).
  8. Texto a ser impresso no console se a operação a==b for verdadeira.
  9. A parte "else" da instrução "if" acima indica o que fazer se a==b for falso.
  10. Texto a ser impresso no console se a operação a==b for falsa.
  11. Verificar se a é menor que b usando uma instrução if.
  12. Texto a ser impresso no console se a operação for bem-sucedida.
  13. A parte "else" para quando um
  14. Texto a ser impresso no console se a operação for bem-sucedida.
  15. Verificando se a é maior que b usando uma instrução if.
  16. Texto a ser impresso no console se a operação a>b for verdadeira.
  17. A parte "else" para quando a>b for falso.
  18. Texto a ser impresso no console se a operação a>b for falsa.
  19. A função main() deve retornar um valor se o programa funcionar bem.
  20. Fim do corpo da função main().

lógico Operatoros

O Operadores lógicos Combinam duas ou 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 lógico AND A condição é verdadeira se ambos os operandos forem diferentes de zero.
Operador lógico OU A condição é verdadeira se um dos operandos for diferente de zero.
! operador lógico NOT Ele inverte o estado lógico do operando. Se o operando for verdadeiro, o operador ! o torna 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:

lógico Operatoros

Aqui está uma captura de tela do código:

lógico Operatoros

Code Explicação:

  1. Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
  2. Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
  3. Chamando a função main() dentro da qual deve ser adicionada a lógica do programa.
  4. O { marca o início do corpo da função main().
  5. Declarando 4 variáveis ​​inteiras a, b, c e d e atribuindo a elas valores diferentes.
  6. Utilizando o operador && (E) dentro da instrução if. Ele une duas condições. A primeira condição é falsa e a segunda é verdadeira, portanto falso&&verdadeiro é falso; o resultado do if é falso.
  7. Texto a ser impresso no console se a condição "if" acima for verdadeira. Esta instrução não será executada.
  8. A parte a ser executada se a instrução "if" acima for falsa.
  9. Texto a ser impresso no console se a instrução if for falsa. Isso será executado.
  10. Utilizando o operador || (OU) dentro de uma instrução if. A primeira condição é falsa e a segunda é verdadeira, portanto false||true é verdadeiro; o resultado do if é verdadeiro.
  11. Texto a ser impresso no console se a condição "if" acima for verdadeira. Este código será executado.
  12. A parte a ser executada se a instrução "if" acima for falsa.
  13. Texto a ser impresso no console se a instrução if for falsa. Isso não será executado.
  14. Verificar se o valor da variável b é 0.
  15. Texto a ser impresso no console se a condição "if" acima for verdadeira. Esta instrução não será executada.
  16. A parte a ser executada se a instrução "if" acima for falsa.
  17. Texto a ser impresso no console se a instrução if for falsa. Isso será executado.
  18. A função main() deve retornar um valor se o programa funcionar bem.
  19. Fim do corpo da função main().

Bit a bit Operatoros

Operadores bit a bit Realizam operações em nível de bit nos operandos. Primeiro, os operandos são convertidos para o nível de bit e, em seguida, as operações são executadas. Isso ocorre quando operações aritméticas como adição e subtração são realizadas.tracAs operações são realizadas em nível de bit, permitindo obter resultados mais rapidamente. Elas incluem:

Operator Descrição
& (AND bit a bit) A função recebe dois números (operandos) e realiza uma operação AND em cada bit dos dois números. Se ambos forem 1, a operação AND retorna 1; caso contrário, retorna 0.
| (OU bit a bit) A função recebe dois números (operandos) e realiza a operação OR em cada bit dos dois números. Ela retorna 1 se um dos bits for 1.
^ (XOR bit a bit) A função recebe dois números (operandos) e realiza uma operação XOR em cada bit dos dois números. Ela retorna 1 se ambos os bits forem diferentes.
<< (deslocamento para a esquerda) A função recebe dois números e, em seguida, desloca os bits do primeiro operando para a esquerda. O segundo operando determina o número total de posições a serem deslocadas.
>> (deslocamento para a direita) A função recebe dois números e desloca os bits do primeiro operando para a direita. O segundo operando determina o número de posições a serem deslocadas.
~ (NOT bit a bit) Recebe um 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:

Bit a bit Operatoros

Aqui está uma captura de tela do código:

Bit a bit Operatoros

Code Explicação:

  1. Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
  2. Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
  3. Chamando a função main() dentro da qual deve ser adicionada a lógica do programa.
  4. Declarando uma variável inteira sem sinal chamada p e atribuindo a ela o valor 60, que é 0011 1100 em binário.
  5. Declarando uma variável inteira sem sinal q e atribuindo a ela o valor 13, que é 0000 1101 em binário.
  6. Declarar uma variável inteira z e inicializá-la com 0.
  7. Executando a operação & (AND) bit a bit nas variáveis ​​p e q e armazenando o resultado na variável z.
  8. Imprimindo o resultado da operação acima no console junto com outro texto.
  9. Executando o bit a bit | (OR) operação nas variáveis ​​peq e armazenamento do resultado na variável z.
  10. Imprimindo o resultado da operação acima no console junto com outro texto.
  11. Executando a operação bit a bit ^ (XOR) nas variáveis ​​peq e armazenando o resultado na variável z.
  12. Imprimindo o resultado da operação acima no console junto com outro texto.
  13. Executando a operação bit a bit ~ (NOT) na variável p e armazenando o resultado na variável z.
  14. Imprimindo o resultado da operação acima no console junto com outro texto.
  15. Realizando a operação de deslocamento para a esquerda na variável p e armazenando o resultado na variável z.
  16. Imprimindo o resultado da operação acima no console junto com outro texto.
  17. Executando a operação de deslocamento para a direita na variável p e armazenando o resultado na variável z.
  18. Imprimindo o resultado da operação acima no console junto com outro texto.
  19. A função main() deve retornar um valor se o programa funcionar bem.
  20. Fim do corpo da função main().

Atribuição Operatoros

Operadores de atribuição Atribui valores a variáveis. O operando/variável é adicionado ao lado esquerdo do operador, enquanto o valor é adicionado ao lado direito. A variável e o valor devem pertencer ao mesmo tipo de dados; caso contrário, C++ O compilador irá gerar um erro.

Por exemplo:

x = 5;

No exemplo acima, x é a variável/operando, = é o operador de atribuição e 5 é o valor. Aqui estão os operadores de atribuição mais comuns 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.
-= (Subtract operador de atribuição AND) SubtracExtrai o valor do operando da direita a partir do operando da esquerda 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:

Atribuição Operatoros

Aqui está uma captura de tela do código:

Atribuição Operatoros

Code Explicação:

  1. Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
  2. Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
  3. Chamando a função main() dentro da qual deve ser adicionada a lógica do programa.
  4. O { marca o início do corpo da função main().
  5. Declarar uma variável inteira x e atribuir a ela o valor 5.
  6. Exibindo o valor da variável x junto com outro texto no console. O \n representa uma nova linha.
  7. Adicionando 5 ao valor da variável x e atribuindo o resultado à variável x.
  8. Imprimindo o valor da variável x no console junto com outro texto.
  9. SubtracExtraindo 5 do valor de x e atribuindo o resultado à variável x.
  10. Imprimindo o valor da variável x no console junto com outro texto.
  11. Multiplicar o valor da variável x por 5 e atribuir o resultado à variável x.
  12. Imprimindo o valor da variável x no console junto com outro texto.
  13. Dividir o valor da variável x por 5 e atribuir o resultado à variável x.
  14. Imprimindo o valor da variável x no console junto com outro texto.
  15. A função main() deve retornar um valor se o programa funcionar bem.
  16. Fim do corpo da função main().

Outros Operatoros

Outros Operatoros Inclui o operador sizeof, vírgula Operator, condicional Operator, e OperaPrecedência dos operadores. Vamos discutir os 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:

operador sizeof

Aqui está uma captura de tela do código:

operador sizeof

Code Explicação:

  1. Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
  2. Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
  3. Chamando a função main() dentro da qual deve ser adicionada a lógica do programa.
  4. Determinar o tamanho de um tipo de dados inteiro usando o operador sizeof e imprimi-lo junto com outro texto no console.
  5. Determinar o tamanho do tipo de dados caractere usando o operador sizeof e imprimi-lo junto com outro texto no console.
  6. Determinar o tamanho do tipo de dados float usando o operador sizeof e imprimi-lo junto com outro texto no console.
  7. Determinar o tamanho do tipo de dados double usando o operador sizeof e imprimi-lo junto com outro texto no console.
  8. A função main() deve retornar um valor se o programa funcionar bem.
  9. Fim do corpo da função main().

Vírgula Operator

O operador vírgula (,) aciona a execução de uma sequência de operações. Expressa o primeiro operando e descarta o resultado. Em seguida, 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:

Vírgula Operator

Aqui está uma captura de tela do código:

Vírgula Operator

Code Explicação:

  1. Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
  2. Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
  3. Chamando a função main() dentro da qual deve ser adicionada a lógica do programa.
  4. Declarando duas variáveis ​​inteiras x e y.
  5. Atribuindo à variável ya o valor de 100.
  6. Usando o operador vírgula. Começa com y em 100, depois incrementa para 101 (y++). Em seguida, y é somado a 10. Finalmente, y, ainda em 101, é somado a 99, resultando em 200. x agora é 200.
  7. Imprimindo o valor da variável x no console.
  8. A função main() deve retornar um valor se o programa funcionar bem.
  9. 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.
  • Expression2 é a expressão a ser executada se a condição for verdadeira.
  • A expressão 3 é 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:

Condicional Operator

Aqui está uma captura de tela do código:

Condicional Operator

Code Explicação:

  1. Incluindo o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
  2. Incluindo o namespace std para usar suas classes e funções sem chamá-lo.
  3. Chamando a função main() dentro da qual deve ser adicionada a lógica do programa.
  4. Declarando dois variáveis ​​inteiras a e b. A variável a recebeu o valor 1.
  5. Atribuindo um 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.
  6. Imprimindo o valor da variável b no console junto com outro texto.
  7. A função main() deve retornar um valor se o programa funcionar bem.
  8. 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:

(), [], *, /, %, +/-, <<, >>, ==, !=, ^, |, &&, ||, ?:, =, +=, -=, *=, /=

Perguntas Frequentes

Assistentes de codificação com IA podem sugerir o operador correto, explicar a precedência e sinalizar erros, como confundir = com ==. Eles aceleram o aprendizado, mas entender o comportamento dos operadores por conta própria continua sendo essencial para escrever código confiável.

Não. As ferramentas de IA podem formatar e revisar expressões, mas a precedência afeta diretamente a saída do programa. Conhecer a precedência ajuda você a ler o código, depurar erros de lógica e escrever expressões que se comportem exatamente como o esperado.

OperaA sobrecarga de operadores permite redefinir o funcionamento de um operador para tipos definidos pelo usuário, como classes. Por exemplo, você pode sobrecarregar o operador + para somar dois objetos, proporcionando aos tipos personalizados um comportamento intuitivo e semelhante ao de operadores nativos.

O prefixo (++i) incrementa o valor primeiro e depois o retorna. O sufixo (i++) retorna o valor atual primeiro e depois o incrementa. A diferença é importante quando o incremento é usado dentro de uma expressão maior.

O operador = atribui um valor a uma variável, enquanto o operador == compara dois valores para verificar se são iguais e retorna verdadeiro ou falso. Usar = dentro de uma condição por engano é um erro comum.

Resuma esta postagem com: