В C++ определен широкий набор встроенных операторов, которые дают в руки программисту мощные рычаги управления при создании и вычислении разнообразнейших выражений.
В табл. 3.5 перечислены арифметические операторы, разрешенные для применения в C++. Действие операторов
Остаток от деления можно получить с помощью
#include
using namespace std;
int main()
{
int x, y;
x = 10;
y = 3;
cout << х/у; // Будет отображено число 3.
cout << "\n";
cout << х%у; /* Будет отображено число 1, т.е. остаток от деления нацело. */
cout << "\n";
х = 1;
y = 2;
cout << х/у << " " << х%у; // Будут выведены числа 0 и 1.
return 0;
}
В последней строке результатов выполнения этой программы действительно будут выведены числа
Унарный минус, по сути, представляет собой умножение значения своего единственного операнда на
В C++ есть два оператора, которых нет в некоторых других языках программирования. Это операторы инкремента (
х = х + 1;
аналогична такой инструкции:
++х;
А инструкция
х = х - 1;
аналогична такой инструкции:
--x;
Операторы инкремента и декремента могут стоять как перед своим операндом (
х = х + 1;
можно переписать в виде префиксной формы
++х; // Префиксная форма оператора инкремента.
или в виде постфиксной формы:
х++; // Постфиксная форма оператора инкремента.
В предыдущем примере не имело значения, в какой форме был применен оператор инкремента: префиксной или постфиксной. Но если оператор инкремента или декремента используется как часть большего выражения, то форма его применения очень важна. Если такой оператор применен в префиксной форме, то C++ сначала выполнит эту операцию, чтобы операнд получил новое значение, которое затем будет использовано остальной частью выражения. Если же оператор применен в постфиксной форме, то C++ использует в выражении его старое значение, а затем выполнит операцию, в результате которой операнд обретет новое значение. Рассмотрим следующий фрагмент кода:
х = 10;
у = ++x;
В этом случае переменная
х = 10;
у = x++;
В обоих случаях переменная
Большинство С++-компиляторов для операций инкремента и декремента создают более эффективный код по сравнению с кодом, сгенерированным при использовании обычного оператора сложения и вычитания единицы. Поэтому профессионалы предпочитают использовать (где это возможно) операторы инкремента и декремента.
Арифметические операторы подчиняются следующему порядку выполнения действий.