C++ обладает богатым набором операций, которые
позволяют в выражениях образовывать новые значения и изменять значения переменных. Поток управления в программе определяется с помощью операторов,
а описания применяются для введения в программе
имен переменных, констант и т. д. Описания служат операторами, поэтому они свободно могут сочетаться с другими операторами.
Необходимо учесть, что операции из таблицы 1 применяются к целым и что не существует отдельного типа
данных для логических действий.
Таблица 1
Операции, применяемые к целым операндам
Смысл операции определяется числом операндов;
унарное & — операция взятия адреса, а бинарное & —
операция логического И.
Смысл операции определяется также типом ее
операндов: + в выражении a + b означает сложение
с плавающей точкой, если тип операндов float, но целое сложение, если их тип int. В C++ существует операция присваивания =,
а не оператор при-сваивания, как в некоторых
языках. То есть присваивание может употребляться
в неожиданном контексте; например, x = sqrt(a = 3*x).
Выражение a = b = c значит присвоение c объекту b,
а потом объекту a. Другое свойство операции присваивания — она способна совмещаться с большинством бинарных операций. К примеру, x[i + 3]* = 4 имеет значение x[i + 3] = x[i + 3]*4, за исключением того,
что выражение x[i + 3] определяется только один раз.
Это дает большую степень эффективности без
необходимости употребления оптимизирующего компилятора. К тому же это менее длинно.
Во многих программах на C++ широко используются указатели.
Унарная операция * разыменовывает указатель, т. е.
*p представляет собой объект, на который указывает p.
Данная операция также именуется косвенной адресацией. Например, если имеется char* p, то *p — это символ, на который указывает p. Часто при работе с указателями применяются операция увеличения ++ и
операция уменьшения --.