Операторы в C++: типы, примеры и практические программы
Что такое операторы?
В C++ оператор — это символ, выполняющий операцию над одним или несколькими операндами. Операторы бывают арифметическими, логическими, 관계льными, битовыми, присваивания и др.
Пример:
a = x + y;
Здесь x и y — операнды, + — оператор сложения. Компилятор складывает x и y и сохраняет результат в a.
В этом уроке вы узнаете:
- Что такое операторы
- Типы операторов в C++
- Арифметические операторы
- Отношения (реляционные) операторы
- Логические операторы
- Битовые операторы
- Операторы присваивания
- Другие операторы (sizeof, запятая, условный, приоритет)
Типы операторов в C++
C++ определяет шесть основных категорий:
- Арифметические
- Отношения (реляционные)
- Логические
- Битовые
- Присваивания
- Прочие
Арифметические операторы
Выполняют математические вычисления.
| Оператор | Описание |
|---|---|
| + | Сложение двух операндов. |
| - | Вычитание второго операнда из первого. |
| * | Умножение двух операндов. |
| / | Деление числителя на знаменатель. |
| % | Остаток от деления. |
| ++ | Инкремент (увеличение на 1). |
| -- | Декремент (уменьшение на 1). |
Пример программы:
#include <iostream>
using namespace std;
int main() {
int a = 11, b = 5, 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;
}
Вывод:

Операторы отношения (реляционные)
Сравнивают операнды и возвращают булево значение.
| Оператор | Описание |
|---|---|
| == | Равенство. |
| != | Неравенство. |
| > | Больше. |
| < | Меньше. |
| >= | Больше или равно. |
| <= | Меньше или равно. |
Пример программы:
#include <iostream>
using namespace std;
int main() {
int a = 11, 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;
}
Вывод:

Логические операторы
Объединяют булевы выражения.
| Оператор | Описание |
|---|---|
| && | Логическое И — true, если оба операнда не нулевые. |
| || | Логическое ИЛИ — true, если хотя бы один операнд не нулевой. |
| ! | Логическое НЕ — инвертирует булево значение. |
Пример программы:
#include <iostream>
using namespace std;
int main() {
int a = 5, b = 2, c = 6, d = 4;
if (a == b && c > d) cout << "a==b AND c>d\n";
else cout << "AND false\n";
if (a == b || c > d) cout << "a==b OR c>d\n";
else cout << "Neither\n";
if (!b) cout << "b is zero\n";
else cout << "b is not zero";
return 0;
}
Вывод:

Битовые операторы
Выполняют операции над отдельными битами целых чисел.
| Оператор | Описание |
|---|---|
| & | Побитовое И — 1 только если оба бита 1. |
| | | Побитовое ИЛИ — 1 если хотя бы один бит 1. |
| ^ | Побитовое XOR — 1 если биты различны. |
| << | Сдвиг влево — биты сдвигаются влево, заполнение нулями. |
| >> | Сдвиг вправо — биты сдвигаются вправо, младшие отбрасываются. |
| ~ | Побитовое НЕ — инвертирует все биты. |
Пример программы:
#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;
}
Вывод:

Операторы присваивания
Присваивают значения переменным, часто комбинируя арифметическую операцию.
| Оператор | Описание |
|---|---|
| = | Простое присваивание. |
| += | Сложение с присваиванием. |
| -= | Вычитание с присваиванием. |
| *= | Умножение с присваиванием. |
| /= | Деление с присваиванием. |
Пример программы:
#include <iostream>
using namespace std;
int main() {
int x = 5;
cout << "Initial x = " << x << "\n";
x += 5; cout << "x += 5 -> " << x << "\n";
x -= 5; cout << "x -= 5 -> " << x << "\n";
x *= 5; cout << "x *= 5 -> " << x << "\n";
x /= 5; cout << "x /= 5 -> " << x << "\n";
return 0;
}
Вывод:

Прочие операторы
Оператор sizeof
Возвращает размер в байтах типа или объекта.
Пример:
#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;
}
Вывод:

Оператор запятая
Выполняет последовательность выражений, возвращая значение последнего.
Пример:
#include <iostream>
using namespace std;
int main() {
int x, y;
y = 100;
x = (y++, y + 10, 99 + y);
cout << x;
return 0;
}
Вывод:

Условный (тернарный) оператор
Оценивает условие и возвращает одно из двух выражений.
Синтаксис: условие ? выражение1 : выражение2
Пример:
#include <iostream>
using namespace std;
int main() {
int a = 1, b;
b = (a < 10) ? 2 : 5;
cout << "value of b: " << b << endl;
return 0;
}
Вывод:

Приоритет операторов
Когда в выражении встречается несколько операторов, порядок вычисления определяется правилами приоритета. От высшего к низшему:
(), [], *, /, %, +, -, <<, >>, ==, !=, ^, |, &&, ||, ?:, =, +=, -=, *=, /=
Резюме
- Операторы — строительные блоки для вычислений и логики в C++.
- Арифметические — базовая математика.
- Отношения — сравнения.
- Логические — булева логика.
- Битовые — манипуляция отдельными битами.
- Присваивания — сохранение значений, часто с арифметикой.
sizeof— размер типа в памяти.- Оператор запятая — последовательность выражений.
- Условный оператор — компактное ветвление.
Язык C
- Биочипы: определение, типы и применение в современной биотехнологии
- Операторы C# — исчерпывающее руководство по операторам в C#
- Освоение операторов C++: полное руководство с практическими примерами
- Оператор switch-case в C++: синтаксис, применение и практические примеры
- Динамическое выделение массивов в C++: практическое руководство с примерами кода
- Перегрузка операторов в C++: практическое руководство с примерами кода
- Структуры (struct) в C++: объяснение с практическим примером
- Освоение std::list в C++: синтаксис, функции и практические примеры
- C++ Struct vs Class: ключевые отличия, синтаксис и лучшие сценарии использования
- Абстрактные классы в C#: практическое руководство с примерами кода