Operadores e expressões
Operadores combinam valores em expressões. C e C++ compartilham quase todos, inclusive as regras da divisão inteira que surpreendem iniciantes.
O que é Operadores e expressões?
Operadores combinam valores em expressões. C e C++ compartilham quase todos, inclusive as regras da divisão inteira que surpreendem iniciantes.
Use operadores aritméticos, de atribuição, de comparação e lógicos em C e C++.
Pontos importantes
- Ative os avisos do compilador e corrija todos.
- Conheça o tipo e o lifetime de cada valor.
- Valide entradas e limites de arrays.
Exemplos de código C e C++
#include <stdio.h>
int main(void) {
int a = 17, b = 5;
printf("a + b = %d\n", a + b);
printf("a - b = %d\n", a - b);
printf("a * b = %d\n", a * b);
printf("a / b = %d\n", a / b); /* integer division drops the fraction */
printf("a %% b = %d\n", a % b); /* remainder */
printf("a / 5.0 = %.1f\n", a / 5.0); /* one double operand gives a double */
int total = 10;
total += 5;
total *= 2;
printf("total = %d\n", total);
int count = 0;
count++;
printf("count = %d\n", count);
/* Comparisons and logical operators give 1 (true) or 0 (false). */
printf("a > b: %d, a == 17: %d\n", a > b, a == 17);
printf("a > 10 && b > 10: %d\n", a > 10 && b > 10);
printf("a > 10 || b > 10: %d\n", a > 10 || b > 10);
return 0;
}
a + b = 22
a - b = 12
a * b = 85
a / b = 3
a % b = 2
a / 5.0 = 3.4
total = 30
count = 1
a > b: 1, a == 17: 1
a > 10 && b > 10: 0
a > 10 || b > 10: 1
#include <iostream>
int main() {
int a = 17, b = 5;
std::cout << "a + b = " << a + b << '\n';
std::cout << "a - b = " << a - b << '\n';
std::cout << "a * b = " << a * b << '\n';
std::cout << "a / b = " << a / b << '\n'; // integer division drops the fraction
std::cout << "a % b = " << a % b << '\n'; // remainder
std::cout << "a / 5.0 = " << a / 5.0 << '\n'; // one double operand gives a double
int total = 10;
total += 5;
total *= 2;
std::cout << "total = " << total << '\n';
int count = 0;
count++;
std::cout << "count = " << count << '\n';
// bool values print as true/false with std::boolalpha.
std::cout << std::boolalpha;
std::cout << "a > b: " << (a > b) << ", a == 17: " << (a == 17) << '\n';
std::cout << "a > 10 && b > 10: " << (a > 10 && b > 10) << '\n';
std::cout << "a > 10 || b > 10: " << (a > 10 || b > 10) << '\n';
}
a + b = 22
a - b = 12
a * b = 85
a / b = 3
a % b = 2
a / 5.0 = 3.4
total = 30
count = 1
a > b: true, a == 17: true
a > 10 && b > 10: false
a > 10 || b > 10: true
Comparação entre C e C++
Dividir dois int descarta a parte decimal, então 17 / 5 é 3; transforme um operando em double para mantê-la. Comparações e && / || dão 1 ou 0 em C e true ou false em C++, que std::boolalpha imprime como palavras.
C expõe APIs procedurais pequenas e detalhes de representação.
C++ preserva o modelo de baixo nível e adiciona tipos mais seguros.
Exercícios práticos
Execute as duas versões e modifique-as para observar suas garantias.
- Adicione entradas inválidas e valores limite.
- Compile com -Wall -Wextra -Wpedantic.
- Separe declarações e implementação.
Pratique com um desafio
Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.
- Celsius to Fahrenheit Convert a temperature from Celsius to Fahrenheit. Fácil
- Simple Interest Find the total amount after simple interest. Fácil