Операторы в C++
Все группы операторов C++: арифметические, сравнения, логические, присваивания, побитовые и тернарный — с таблицами и примерами.
Оператор — символ или слово, которое задаёт действие над одним или несколькими операндами и возвращает результат. В C++ операторы делятся на группы по назначению.
Арифметические операторы
Выполняют математические вычисления над числами.
Оператор | Действие | Пример | Результат |
| сложение |
| 10 |
| вычитание |
| 4 |
| умножение |
| 21 |
| деление |
| 2 (целочисленное!) |
| остаток от деления |
| 1 |
#include <iostream>
using namespace std;
int main() {
int a = 7, b = 3;
cout << a + b << "\n"; // 10
cout << a - b << "\n"; // 4
cout << a * b << "\n"; // 21
cout << a / b << "\n"; // 2 — целочисленное деление, дробь отбрасывается
cout << a % b << "\n"; // 1
return 0;
}
Вывод:
10 4 21 2 1
Ловушка деления. При делении двух
intдробная часть отбрасывается:7 / 3 == 2, а не2.33. Чтобы получить дробный результат, хотя бы один операнд должен бытьdouble:7.0 / 3или(double)a / b.
Операторы сравнения
Сравнивают два значения и возвращают true или false. Используются в условиях.
Оператор | Смысл |
| равно |
| не равно |
| больше |
| меньше |
| больше или равно |
| меньше или равно |
#include <iostream>
using namespace std;
int main() {
int x = 5;
cout << (x == 5) << "\n"; // 1 (true)
cout << (x != 5) << "\n"; // 0 (false)
cout << (x > 3) << "\n"; // 1
cout << (x < 3) << "\n"; // 0
return 0;
}
Вывод:
1 0 1 0
Ловушка.
=— это присваивание,==— сравнение. Написавif (x = 5)вместоif (x == 5), вы не сравниваете, а присваиваете 5 переменной x — условие всегда истинно.
Логические операторы
Комбинируют булевы условия.
Оператор | Смысл | Пример |
| И — оба условия истинны |
|
| ИЛИ — хотя бы одно истинно |
|
| НЕ — инвертирует значение |
|
#include <iostream>
using namespace std;
int main() {
int x = 7;
if (x > 0 && x < 10) {
cout << "x в диапазоне 1–9\n";
}
if (x < 0 || x > 5) {
cout << "x меньше 0 или больше 5\n";
}
cout << !true << "\n"; // 0 (false)
return 0;
}
Вывод:
x в диапазоне 1–9 x меньше 0 или больше 5 0
Операторы присваивания
Присваивают переменной новое значение. Составные операторы — сокращённая запись арифметики плюс присваивание.
Оператор | Аналог | Пример |
| — |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include <iostream>
using namespace std;
int main() {
int x = 10;
x += 5; cout << x << "\n"; // 15
x -= 3; cout << x << "\n"; // 12
x *= 2; cout << x << "\n"; // 24
x /= 4; cout << x << "\n"; // 6
x %= 4; cout << x << "\n"; // 2
return 0;
}
Вывод:
15 12 24 6 2
Инкремент и декремент
Увеличивают или уменьшают переменную на 1. Бывают префиксными (++x) и постфиксными (x++): оба изменяют переменную, но различаются тем, какое значение возвращается в выражении.
Форма | Возвращает |
| значение после увеличения |
| значение до увеличения |
#include <iostream>
using namespace std;
int main() {
int a = 5;
cout << a++ << "\n"; // 5 — вернул старое, затем увеличил
cout << a << "\n"; // 6 — теперь 6
cout << ++a << "\n"; // 7 — сначала увеличил, затем вернул
return 0;
}
Вывод:
5 6 7
Тернарный оператор
Сокращённая запись if-else в одном выражении: условие ? значение_если_истина : значение_если_ложь.
#include <iostream>
using namespace std;
int main() {
int x = 7;
string result = (x % 2 == 0) ? "чётное" : "нечётное";
cout << x << " — " << result << "\n";
return 0;
}
Вывод:
7 — нечётное
Побитовые операторы
Работают прямо с битами числа. Редко нужны в начале обучения, но полезны в системном программировании и оптимизации.
Оператор | Действие | Пример (dec) | Результат |
| побитовое И |
| 1 |
| побитовое ИЛИ |
| 7 |
| XOR |
| 6 |
| инверсия битов |
| -6 |
| сдвиг влево |
| 8 |
| сдвиг вправо |
| 2 |
#include <iostream>
using namespace std;
int main() {
cout << (5 & 3) << "\n"; // 1
cout << (5 | 3) << "\n"; // 7
cout << (1 << 3) << "\n"; // 8 (1 * 2^3)
cout << (8 >> 2) << "\n"; // 2 (8 / 2^2)
return 0;
}
Вывод:
1 7 8 2
Коротко
- Арифметические:
+-*/%; деление двухint— целочисленное, дробь теряется. - Сравнения:
==!=><>=<=; не путайте=(присваивание) с==(сравнение). - Логические:
&&(И),||(ИЛИ),!(НЕ). - Составное присваивание:
+=-=*=/=%=— сокращения для арифметики плюс присваивание. - Инкремент
++/ декремент--: префикс меняет до возврата, постфикс — после. - Тернарный:
условие ? если_да : если_нет— удобная замена короткомуif-else.