Операции делятся на унарные, бинарные и тернарную по количеству участвующих в них операндов. Большинство стандартных операций может быть переопределено (перегружено).Операции присваивания (=, +=, -=, *= и т. д.)
Операции присваивания могут использоваться в программе как законченные операторы.
Формат операции простого присваивания (=):
операнд_1 = операнд_2
Первый операнд должен быть L-значением, второй — выражением. Сначала вычисляется выражение, стоящее в правой части операции, а потом его результат записывается в область памяти, указанную в левой части (мнемоническое правило: «присваивание — это передача данных «налево»»). То, что ранее хранилось в этой области памяти, естественно, теряется.
Один и тот же знак может интерпретироваться по-разному в зависимости от контекста.
Операции присваивания могут использоваться в программе как законченные операторы.
Формат операции простого присваивания (=):
операнд_1 = операнд_2
Первый операнд должен быть L-значением, второй — выражением. Сначала вычисляется выражение, стоящее в правой части операции, а потом его результат записывается в область памяти, указанную в левой части (мнемоническое правило: «присваивание — это передача данных «налево»»). То, что ранее хранилось в этой области памяти, естественно, теряется.
#includeРезультат работы программы: a = 5 b = 5 c = 8.int main(){int a = 3, b = 5, с = 7;a = b; b = a; с = с + 1;cout << "a = " << a;cout << "\t b = " << b;cout << "\t с = " << c;return 0;}
Основные операции языка программирования C++
В таблице ниже приведен список основных операций, определенных в языке C++, в соответствии с их приоритетами (по убыванию приоритетов, операции с разными приоритетами разделены чертой).
Все приведенные в таблице операции, кроме условной и sizeof, могут быть переопределены (перегружены).
Все приведенные в таблице операции, кроме условной и sizeof, могут быть переопределены (перегружены).
| Операция | Краткое описание |
| Унарные операции | |
| :: | доступ к области видимости |
| . | выбор |
| -> | выбор |
| [ ] | индексация |
| ( ) | вызов функции |
| <тип>( ) | конструирование |
| ++ | постфиксный инкремент |
| — | постфиксный декремент |
| typeid | идентификация типа |
| dynamic_cast | преобразование типа с проверкой на этапе выполнения |
| static_cast | преобразование типа с проверкой на этапе компиляции |
| reinterpret_cast | преобразование типа без проверки |
| const_cast | константное преобразование типа |
| sizeof | размер объекта или типа |
| — | префиксный декремент |
| ++ | префиксный инкремент |
| ~ | поразрядное отрицание |
| ! | логическое отрицание |
| - | арифметическое отрицание (унарный минус) |
| + | унарный плюс |
| & | взятие адреса |
| * | разадресация |
| new | выделение памяти |
| delete | освобождение памяти |
| (<тип>) | преобразование типа |
| .* | выбор |
| ->* | выбор |
| Бинарные и тернарные операции | |
| * | умножение |
| / | деление |
| % | остаток от деления |
| + | сложение |
| - | вычитание |
| << | сдвиг влево |
| >> | сдвиг вправо |
| < | меньше |
| <= | меньше или равно |
| > | больше |
| >= | больше или равно |
| == | равно |
| != | не равно |
| & | поразрядная конъюнкция (И) |
| ^ | поразрядное исключающее ИЛИ |
| | | поразрядная дизъюнкция (ИЛИ) |
| && | логическое И |
| || | логическое ИЛИ |
| ? : | условная операция (тернарная) |
| = | присваивание |
| *= | умножение с присваиванием |
| /= | деление с присваиванием |
| %= | остаток отделения с присваиванием |
| += | сложение с присваиванием |
| -= | вычитание с присваиванием |
| <<= | сдвиг влево с присваиванием |
| >>= | сдвиг вправо с присваиванием |
| &= | поразрядное И с присваиванием |
| |= | поразрядное ИЛИ с присваиванием |
| ^= | поразрядное исключающее ИЛИ с присваиванием |
| throw | исключение |
| , | последовательное вычисление |