Операции подобны встроенным функциям языка. Они применяются к выражениям – операндам. Большинство операций имеют два операнда, один из которых помещается перед знаком операции, а другой – после. Такие операции называются бинарными. Существуют и унарные операции, имеющие только один операнд, как правило, помещаемый после знака операции.
В сложных выражениях последовательность выполнения операций определяется скобками, старшинством операций, а при одинаковом старшинстве – ассоциативностью операций.
Арифметические операции. Арифметические операции применяются к действительным и целым числам, существуют следующие арифметические операции:
Таблица 3
Бинарные арифметические операции
Обозначение | Операция | Пример |
+ | сложение | X + Y |
- | вычитание | X - Y |
* | умножение | X * Y |
/ | деление | X / Y |
% | Остаток целочисленного деления | I % 6 |
Таблица 4
Унарные арифметические операции
Обозначение | Операция | Пример |
+ | Унарный плюс (подтверждение знака) | +7 |
- | Унарный минус (изменение знака) | -Х |
++ | инкремент | i++ |
-- | декремент | i-- |
Для арифметических операций действуют следующие правила:
§ Бинарные операции сложения (+) и вычитания (-) применимы к целым и действительным числам.
§ В операциях умножения (*) и деления (/) операнды могут быть любых арифметических типов. При разных типах операндов применяются стандартные правила автоматического приведения типов.
§ В операции вычисления остатка от деления (%) оба операнда должны быть целыми числами.
§ В операциях деления и вычисления остатка второй операнд не может быть равен нулю. Если оба операнда в этих операциях целые, а результат деления является не целым числом, то знак результата вычисления остатка совпадет со знаком первого операнда. Округление всегда осуществляется по направлению к нулю.
§ Унарные операции инкремента (++) и декремента (--) сводятся к увеличению (++) или уменьшению (--) операнда на единицу. Операции применимы к операндам, представляющим собой выражения любых арифметических типов. Причем выражение должно быть модифицируемым значением, т.е. должно допускать изменение. Например, ошибочным является выражение (а+b)++, поскольку (a+b) не является переменной, которую можно модифицировать.
§ Операции инкремента и декремента выполняются быстрее, чем обычное сложение и вычитание. Поэтому, если переменная а должна быть увеличена на 1, лучше применить операцию (++), чем выражения а=а+1.
Операции присваивания. В Си++ определен ряд операций присваивания.
Таблица 5
Операции присваивания
Обозначение | Операция | Пример |
= | Присваивание | X=Y |
+= | Присваивание со сложением | Х+=Y |
-= | Присваивание с вычитанием | Х-=Y |
*= | Присваивание с умножением | Х*=Y |
/= | Присваивание с делением | Х/=Y |
%= | Присваивание остатка целочисленного деления | Х%=Y |
<= | Присваивание со сдвигом влево | Х<=Y |
>= | Присваивание со сдвигом вправо | Х>=Y |
&= | Присваивание с поразрядной операцией И | Х&=Y |
^= | Присваивание с поразрядной операцией исключающее ИЛИ | Х^=Y |
|= | Присваивание с поразрядной операцией ИЛИ | Х|=Y |
Помимо простой операции присваивания (=) все прочие являются составными операциями. Они присваивают первому операнду результат применения соответствующей простой операции, указанной перед символом (=), к первому и второму операндам. Например, выражение X+=Y эквивалентно выражению X=X+Y, но записывается компактнее и может выполнятся быстрее. Аналогично определяются и другие операции присваивания: X%=Y эквивалентно X=X%Y и т.д.
При записи составных операций присваивания между символом операции и знаком равенства пробел не допускается.
В операциях присваивания первый операнд не может быть нулевым указателям.
Дата: 2019-02-02, просмотров: 265.