Операции делятся на унарные, бинарные и тернарную по количеству участвующих в них операндов. Большинство стандартных операций может быть переопределено (перегружено).Операции присваивания (=, +=, -=, *= и т. д.)
Операции присваивания могут использоваться в программе как законченные операторы.
Формат операции простого присваивания (=):
операнд_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 | исключение |
, | последовательное вычисление |