Освоение операторов C++: полное руководство с практическими примерами
Операторы в C++
В этом уроке мы изучим различные типы операторов в C++ с помощью примеров. В программировании оператор — это символ, который выполняет операцию над значением или переменной.
Операторы — символы, выполняющие операции над переменными и значениями. Например, + — оператор сложения, а - — оператор вычитания.
Операторы в C++ можно классифицировать на 6 типов:
- Арифметические операторы
- Операторы присваивания
- Операторы отношения
- Логические операторы
- Побитовые операторы
- Другие операторы
1. Арифметические операторы C++
Арифметические операторы используются для выполнения арифметических операций над переменными и данными. Например,
a + b;
Здесь оператор + используется для сложения двух переменных a и b. Аналогично существуют и другие арифметические операторы.
| Оператор | Операция |
|---|---|
+ | Сложение |
- | Вычитание |
* | Умножение |
/ | Деление |
% | Операция взятия остатка (остаток от деления) |
Пример 1: Арифметические операторы
#include <iostream>
using namespace std;
int main() {
int a, b;
a = 7;
b = 2;
// печать суммы a и b
cout << "a + b = " << (a + b) << endl;
// печать разности a и b
cout << "a - b = " << (a - b) << endl;
// печать произведения a и b
cout << "a * b = " << (a * b) << endl;
// печать деления a на b
cout << "a / b = " << (a / b) << endl;
// печать остатка от деления a на b
cout << "a % b = " << (a % b) << endl;
return 0;
}
Результат
a + b = 9 a - b = 5 a * b = 14 a / b = 3 a % b = 1
Здесь операторы +, - и * вычисляют сложение, вычитание и умножение соответственно, как и ожидалось.
Оператор деления /
Обратите внимание на операцию (a / b) в нашей программе. Оператор / — это оператор деления.
Как видно из примера, если целое число делится на другое целое, мы получаем частное. Однако, если делимое или делитель — число с плавающей точкой, результат будет в десятичном виде.
В C++: 7/2 = 3 7.0 / 2 = 3.5 7 / 2.0 = 3.5 7.0 / 2.0 = 3.5
Оператор остатка %
Оператор % вычисляет остаток. Когда a = 9 делится на b = 4, остаток равен 1.
Примечание: Оператор % можно использовать только с целыми числами.
Операторы инкремента и декремента
C++ также предоставляет операторы инкремента и декремента: ++ и -- соответственно.
++увеличивает значение операнда на 1--уменьшает его на 1
Например,
int num = 5;
// оператор инкремента
++num; // 6
Здесь код ++num; увеличивает значение num на 1.
Пример 2: Операторы инкремента и декремента
// Работа операторов инкремента и декремента
#include <iostream>
using namespace std;
int main() {
int a = 10, b = 100, result_a, result_b;
// инкремент a на 1 и сохранение результата в result_a
result_a = ++a;
cout << "result_a = " << result_a << endl;
// декремент b на 1 и сохранение результата в result_b
result_b = --b;
cout << "result_b = " << result_b << endl;
return 0;
}
Результат
result_a = 11 result_b = 99
В программе мы использовали операторы ++ и -- как префиксы (++a и --b). Однако их можно использовать и как постфиксы (a++ и b--).
Чтобы узнать больше, посетите урок об операторах инкремента и декремента.
2. Операторы присваивания в C++
В C++ операторы присваивания используются для присваивания значений переменным. Например,
// присвоить 5 переменной a
a = 5;
Здесь мы присвоили значение 5 переменной a.
| Оператор | Пример | Эквивалентно |
|---|---|---|
= | a = b; | a = b; |
+= | a += b; | a = a + b; |
-= | a -= b; | a = a - b; |
*= | a *= b; | a = a * b; |
/= | a /= b; | a = a / b; |
%= | a %= b; | a = a % b; |
Пример 3: Операторы присваивания
#include <iostream>
using namespace std;
int main() {
int a, b;
// 2 присваивается a
a = 2;
// 7 присваивается b
b = 7;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "\nAfter a += b;" << endl;
// присвоение суммы a и b в a
a += b; // a = a + b
cout << "a = " << a << endl;
return 0;
}
Результат
a = 2 b = 7 After a += b; a = 9
3. Операторы отношения в C++
Оператор отношения используется для проверки отношения между двумя операндами. Например,
// проверяет, больше ли a, чем b
a > b;
Здесь > — оператор отношения. Он проверяет, больше ли a, чем b.
Если отношение истинно, возвращается 1, а если ложно — 0.
| Оператор | Значение | Пример |
|---|---|---|
== | Равно | 3 == 5 дает false |
!= | Не равно | 3 != 5 дает true |
> | Больше | 3 > 5 дает false |
< | Меньше | 3 < 5 дает true |
>= | Больше или равно | 3 >= 5 дает false |
<= | Меньше или равно | 3 <= 5 дает true |
Пример 4: Операторы отношения
#include <iostream>
using namespace std;
int main() {
int a, b;
a = 3;
b = 5;
bool result;
result = (a == b); // false
cout << "3 == 5 is " << result << endl;
result = (a != b); // true
cout << "3 != 5 is " << result << endl;
result = a > b; // false
cout << "3 > 5 is " << result << endl;
result = a < b; // true
cout << "3 < 5 is " << result << endl;
result = a >= b; // false
cout << "3 >= 5 is " << result << endl;
result = a <= b; // true
cout << "3 <= 5 is " << result << endl;
return 0;
}
Результат
3 == 5 is 0 3 != 5 is 1 3 > 5 is 0 3 < 5 is 1 3 >= 5 is 0 3 <= 5 is 1
Примечание: Операторы отношения используются в принятии решений и циклах.
4. Логические операторы в C++
Логические операторы проверяют, является ли выражение истинным или ложным. Если выражение истинно, возвращается 1, если ложно — 0.
| Оператор | Пример | Значение |
|---|---|---|
&& | expression1 && expression2 | Логическое И. Истинно только если все операнды истинны. |
|| | expression1 || expression2 | Логическое ИЛИ. Истинно, если хотя бы один операнд истинен. |
! | !expression | Логическое НЕ. Истинно только если операнд ложен. |
В C++ логические операторы часто используются в принятии решений. Для лучшего понимания рассмотрим примеры:
Пусть a = 5, b = 8
(a > 3) && (b > 5) оценивается как true
(a > 3) && (b < 5) оценивается как false
(a > 3) || (b > 5) оценивается как true
(a > 3) || (b < 5) оценивается как true
(a < 3) || (b < 5) оценивается как false
!(a < 3) оценивается как true
!(a > 3) оценивается как false
Пример 5: Логические операторы
#include <iostream>
using namespace std;
int main() {
bool result;
result = (3 != 5) && (3 < 5); // true
cout << "(3 != 5) && (3 < 5) is " << result << endl;
result = (3 == 5) && (3 < 5); // false
cout << "(3 == 5) && (3 < 5) is " << result << endl;
result = (3 == 5) && (3 > 5); // false
cout << "(3 == 5) && (3 > 5) is " << result << endl;
result = (3 != 5) || (3 < 5); // true
cout << "(3 != 5) || (3 < 5) is " << result << endl;
result = (3 != 5) || (3 > 5); // true
cout << "(3 != 5) || (3 > 5) is " << result << endl;
result = (3 == 5) || (3 > 5); // false
cout << "(3 == 5) || (3 > 5) is " << result << endl;
result = !(5 == 2); // true
cout << "!(5 == 2) is " << result << endl;
result = !(5 == 5); // false
cout << "!(5 == 5) is " << result << endl;
return 0;
}
Результат
(3 != 5) && (3 < 5) is 1 (3 == 5) && (3 < 5) is 0 (3 == 5) && (3 > 5) is 0 (3 != 5) || (3 < 5) is 1 (3 != 5) || (3 > 5) is 1 (3 == 5) || (3 > 5) is 0 !(5 == 2) is 1 !(5 == 5) is 0
Пояснение программы с логическими операторами
(3 != 5) && (3 < 5)оценивается как 1, так как оба операнда(3 != 5)и(3 < 5)равны 1 (true).(3 == 5) && (3 < 5)оценивается как 0, так как операнд(3 == 5)равен 0 (false).(3 == 5) && (3 > 5)оценивается как 0, так как оба операнда(3 == 5)и(3 > 5)равны 0 (false).(3 != 5) || (3 < 5)оценивается как 1, так как оба операнда(3 != 5)и(3 < 5)равны 1 (true).(3 != 5) || (3 > 5)оценивается как 1, так как операнд(3 != 5)равен 1 (true).(3 == 5) || (3 > 5)оценивается как 0, так как оба операнда(3 == 5)и(3 > 5)равны 0 (false).!(5 == 2)оценивается как 1, так как операнд(5 == 2)равен 0 (false).!(5 == 5)оценивается как 0, так как операнд(5 == 5)равен 1 (true).
5. Побитовые операторы в C++
В C++ побитовые операторы выполняют операции над отдельными битами. Их можно использовать только с типами char и int.
| Оператор | Описание |
|---|---|
& | Побитовое И |
| | Побитовое ИЛИ |
^ | Побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ |
~ | Побитовое дополнение до единицы |
<< | Побитовый сдвиг влево |
>> | Побитовый сдвиг вправо |
Чтобы узнать больше, посетите урок о побитовых операторах C++.
6. Другие операторы C++
Вот список некоторых других распространенных операторов в C++. Мы изучим их в следующих уроках.
| Оператор | Описание | Пример |
|---|---|---|
sizeof | возвращает размер типа данных | sizeof(int); // 4 |
?: | возвращает значение на основе условия | string result = (5 > 0) ? "even" : "odd"; // "even" |
& | представляет адрес памяти операнда | # // адрес num |
. | доступ к членам структур или объектов классов | s1.marks = 92; |
-> | используется с указателями для доступа к переменным класса или структуры | ptr->marks = 92; |
<< | выводит значение | cout << 5; |
>> | получает вводимое значение | cin >> num; |
Язык C
- Операторы C# — исчерпывающее руководство по операторам в C#
- Понимание типов данных C++: основы, модификаторы и лучшие практики
- Комментарии в C++: лучшие практики для читаемого и поддерживаемого кода
- Шаблоны классов в C++: практическое руководство
- Операторы в C: исчерпывающее руководство
- Мастерство операторов Python: Полное руководство
- Освоение операторов Java: типы, синтаксис и практические примеры
- Операторы в C++: типы, примеры и практические программы
- Операторы в C: полное руководство по арифметическим, битовым, логическим и другим операторам
- Язык программирования C++: обзор и ключевые особенности