Оглавление:
Видео: [C++] Регулярные выражения (урок 1) regex_match 2024
Переменные и константы полезны, только если вы можете использовать их для выполнения вычислений. Выражение выражение - это жаргон C ++ для вычисления. Вы уже видели самое простое выражение:
int n; // Объявление n = 1; // выражение
Программисты объединяют переменные, константы и операторы для выражения. Оператор выполняет некоторую арифметическую операцию над своими аргументами. Большинство операторов принимают два аргумента - они называются двоичными операторами . Несколько операторов принимают один аргумент - это унарные операторы .
Все выражения возвращают значение и тип.
Двоичные операторы
А двоичный оператор - это оператор, который принимает два аргумента. Если вы можете сказать var1 op var2, то op должен быть двоичным оператором. Наиболее распространенные бинарные операторы - это те же простые операции, которые вы изучили в начальной школе. В таблице отображаются общие двоичные операторы.
Приоритет | Оператор | Значение |
---|---|---|
1 | - (унарный) | Возвращает отрицательный аргумент |
2 | ++ (унарный) | Приращение |
2 | - (унарный) | Decrement |
3 | * (двоичный) | Умножение |
3 | / (двоичный) > Подраздел | 3 |
% (двоичный) | Modulo | 4 |
+ (двоичный) | Дополнение | 4 |
- (двоичный) | Вычитание | 5 |
=, * =,% =, + =, - = (special) | Типы присваивания |
|
Умножение, деление, сложение, вычитание и модуляция - это операторы, используемые для выполнения арифметики. Они работают так же, как и арифметические операторы, которые вы изучили в гимназии, со следующими специальными соображениями:
-
Рассмотрим следующий пример: int n = 2; // объявлять переменную int m = 2n; // генерирует ошибку
Вышеприведенное выражение не присваивает
m значение 2 раза n . Вместо этого C ++ пытается интерпретировать 2 n как имя переменной. Поскольку имена переменных не могут начинаться с цифры, она генерирует ошибку во время этапа сборки. Что означал программист:
int n = 2; int m = 2 * n; // это нормально
Целочисленное деление отбрасывает остаток.
-
Таким образом, следующее: int n = 13/7; // присваивает значение от 1 до n
Четырнадцать, деленное на 7, равно 2. Тринадцать, деленная на семь, равна 1.
Оператор modulo возвращает остаток после деления
-
(вы можете не помнить по модулю): int n = 13% 7; // устанавливает n в 6
Четырнадцать по модулю семь равно нулю. Тринадцать по модулю семи - шесть.
Разбиение составных выражений
Одно выражение может включать несколько операторов:
int n = 5 + 100 + 32;
Когда все операторы одинаковы, C ++ вычисляет выражение слева направо:
5 + 100 + 32 105 + 32 137
Когда разные операторы объединены в одном выражении, C ++ использует свойство, называемое
старшинства. Приоритет - это порядок, в котором операторы вычисляются в составном выражении. Рассмотрим следующий пример: int n = 5 * 100 + 32;
Что на первом месте, умножение или добавление? Или это выражение просто оценивается слева направо? Обратитесь к таблице, в которой говорится, что умножение имеет приоритет 3, что выше, чем приоритет добавления, который равен 4 (меньшие значения имеют более высокий приоритет). Таким образом, сначала происходит умножение:
5 * 100 + 32 500 + 32 532
Порядок операций отменяется приоритетом операторов. Как видите,
int n = 32 + 5 * 100;
генерирует тот же результат:
32 + 5 * 100 32 + 500 532
Но что, если вы действительно хотите в 5 раз больше суммы 100 плюс 32? Вы можете переопределить приоритет операторов путем переноса выражений, которые вы хотите выполнить в скобках, следующим образом:
int n = 5 * (100 + 32);
Теперь добавление выполняется перед умножением:
5 * (100 + 32) 5 * 132 660
Вы можете комбинировать круглые скобки, чтобы сделать выражения такими сложными, как вам нравится. C ++ всегда начинается с наиболее вложенных круглых скобок, которые он может найти и работает.
(3 + 2) * ((100/20) + (50/5)) (3 + 2) * (5 + 10) 5 * 15 75
Вы всегда можете разделить сложные выражения с использованием промежуточных переменных. Следующее более безопасно:
int factor = 3 + 2; int main = (100/20) + (50/5); int total = factor * main;
Присвоение имени промежуточным значениям также позволяет программисту объяснить части сложного уравнения, что облегчает понимание следующим программистом.