Operadores em C++ Explicados: Tipos, Exemplos e Programas Práticos
O que São Operadores?
Em C++, um operador é um símbolo que realiza uma operação em um ou mais operandos. Operadores podem ser aritméticos, lógicos, relacionais, bitwise, de atribuição, entre outros.
Exemplo:
a = x + y;
Aqui, x e y são operandos, e + é o operador de adição. O compilador soma x e y e armazena o resultado em a.
Neste tutorial você aprenderá:
- O que são operadores
- Tipos de operadores em C++
- Operadores aritméticos
- Operadores relacionais
- Operadores lógicos
- Operadores bitwise
- Operadores de atribuição
- Outros operadores (sizeof, vírgula, condicional, precedência)
Tipos de Operadores em C++
O C++ define seis categorias principais de operadores:
- Operadores Aritméticos
- Operadores Relacionais
- Operadores Lógicos
- Operadores Bitwise
- Operadores de Atribuição
- Outros Operadores
Operadores Aritméticos
Estes operadores realizam cálculos matemáticos.
| Operador | Descrição |
|---|---|
| + | Soma dois operandos. |
| - | Subtrai o segundo operando do primeiro. |
| * | Multiplica dois operandos. |
| / | Divide o numerador pelo denominador. |
| % | Retorna o resto de uma divisão. |
| ++ | Incrementa um inteiro em um. |
| -- | Decrementa um inteiro em um. |
Programa de exemplo:
#include <iostream>
using namespace std;
int main() {
int a = 11;
int b = 5;
int c;
cout << "a + b é: " << a+b << endl;
cout << "a - b é: " << a-b << endl;
cout << "a * b é: " << a*b << endl;
cout << "a / b é: " << a/b << endl;
cout << "a % b é: " << a%b << endl;
cout << "a++ é: " << a++ << endl;
cout << "a-- é: " << a-- << endl;
return 0;
}
Operadores Relacionais
Estes operadores comparam operandos e retornam um resultado booleano.
| Operador | Descrição |
|---|---|
| == | Verifica igualdade. |
| != | Verifica desigualdade. |
| > | Maior que. |
| < | Menor que. |
| >= | Maior ou igual a. |
| <= | Menor ou igual a. |
Programa de 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 é true" << endl;
} else {
cout << "a == b é false" << endl;
}
if (a < b) {
cout << "a < b é true" << endl;
} else {
cout << "a < b é false" << endl;
}
if (a > b) {
cout << "a > b é true" << endl;
} else {
cout << "a > b é false" << endl;
}
return 0;
}
Operadores Lógicos
Operadores lógicos combinam expressões booleanas.
| Operador | Descrição |
|---|---|
| && | AND lógico – true se ambos operandos são não-zero. |
| || | OR lógico – true se pelo menos um operando é não-zero. |
| ! | NOT lógico – inverte o valor booleano. |
Programa de exemplo:
#include <iostream>
using namespace std;
int main() {
int a = 5, b = 2, c = 6, d = 4;
if (a == b && c > d)
cout << "a igual a b E c maior que d\n";
else
cout << "Operação AND retornou false\n";
if (a == b || c > d)
cout << "a igual a b OU c maior que d\n";
else
cout << "Nem a é igual a b nem c é maior que d\n";
if (!b)
cout << "b é zero\n";
else
cout << "b não é zero";
return 0;
}
Operadores Bitwise
Operadores bitwise realizam operações em bits individuais de valores inteiros.
| Operador | Descrição |
|---|---|
| & | AND bitwise – 1 apenas se ambos bits são 1. |
| | | OR bitwise – 1 se pelo menos um bit é 1. |
| ^ | XOR bitwise – 1 se bits diferem. |
| << | Shift left – desloca bits à esquerda, preenchendo com 0. |
| >> | Shift right – desloca bits à direita, descartando bits inferiores. |
| ~ | NOT bitwise – inverte todos os bits. |
Programa de exemplo:
#include <iostream>
using namespace std;
int main() {
unsigned int p = 60; // 0011 1100
unsigned int q = 13; // 0000 1101
int z = 0;
z = p & q;
cout << "p&q é: " << z << endl; // 12
z = p | q;
cout << "p|q é: " << z << endl; // 61
z = p ^ q;
cout << "p^q é: " << z << endl; // 49
z = ~p;
cout << "~p é: " << z << endl; // -61
z = p << 2;
cout << "p<<2 é: " << z << endl; // 240
z = p >> 2;
cout << "p>>2 é: " << z << endl; // 15
return 0;
}
Operadores de Atribuição
Estes operadores atribuem valores a variáveis, frequentemente combinando uma operação aritmética.
| Operador | Descrição |
|---|---|
| = | Atribuição simples. |
| += | Soma e atribui. |
| -= | Subtrai e atribui. |
| *= | Multiplica e atribui. |
| /= | Divide e atribui. |
Programa de exemplo:
#include <iostream>
using namespace std;
int main() {
int x = 5;
cout << "Valor inicial de x é " << x << "\n";
x += 5;
cout << "x += 5 resulta em: " << x << "\n";
x -= 5;
cout << "x -= 5 resulta em: " << x << "\n";
x *= 5;
cout << "x *= 5 resulta em: " << x << "\n";
x /= 5;
cout << "x /= 5 resulta em: " << x << "\n";
return 0;
}
Outros Operadores
Operador sizeof
Retorna o tamanho, em bytes, de um tipo ou objeto.
Exemplo:
#include <iostream>
using namespace std;
int main() {
cout << "Tamanho de int: " << sizeof(int) << "\n";
cout << "Tamanho de char: " << sizeof(char) << "\n";
cout << "Tamanho de float: " << sizeof(float) << "\n";
cout << "Tamanho de double: " << sizeof(double) << "\n";
return 0;
}
Operador Vírgula
Executa uma sequência de expressões, retornando o valor da última.
Exemplo:
#include <iostream>
using namespace std;
int main() {
int x, y;
y = 100;
x = (y++, y + 10, 99 + y);
cout << x;
return 0;
}
Operador Condicional
Também conhecido como operador ternário, avalia uma condição e retorna uma de duas expressões.
Sintaxe: condição ? expr1 : expr2
Exemplo:
#include <iostream>
using namespace std;
int main() {
int a = 1, b;
b = (a < 10) ? 2 : 5;
cout << "valor de b: " << b << endl;
return 0;
}
Precedência de Operadores
Quando múltiplos operadores aparecem em uma única expressão, regras de precedência determinam a ordem de avaliação. Da maior para a menor precedência:
(), [], *, /, %, +/-, <<, >>, ==, !=, ^, |, &&, ||, ?:, =, +=, -=, *=, /=
Resumo
- Operadores são blocos de construção para realizar cálculos e lógica em C++.
- Operadores aritméticos lidam com matemática básica.
- Operadores relacionais permitem comparações.
- Operadores lógicos suportam lógica booleana.
- Operadores bitwise manipulam bits individuais.
- Operadores de atribuição armazenam valores, frequentemente combinando aritmética.
- O operador sizeof revela a pegada de memória de tipos.
- O operador vírgula sequencia expressões.
- O operador condicional oferece decisões inline concisas.
Linguagem C
- Biochips: Definição, Tipos e Aplicações na Biotecnologia Moderna
- Operadores em C# – Guia Completo dos Operadores em C#
- Dominando Operadores em C++: Guia Completo com Exemplos Práticos
- Dominando Switch-Case em C++: Sintaxe, Uso e Exemplos Práticos
- Dominando Alocação Dinâmica de Arrays em C++: Guia Prático com Exemplos de Código
- Sobrecarga de Operadores em C++: Guia Prático com Exemplos de Código
- Structs em C++ Explicadas com Exemplo Prático
- Dominando std::list em C++: Sintaxe, Funções e Exemplos Práticos
- C++ Struct vs Class: Diferenças Principais, Sintaxe e Melhores Casos de Uso
- Classes Abstratas em C#: Tutorial Prático com Exemplos de Código