
- •Последовательность решения задач на эвм:
- •Состав языка
- •Комментарии
- •Переменные, операции, выражения
- •Базовые алгоритмические конструкции
- •Оператор множественного выбора switch
- •Тернарная условная операция
- •Циклические алгоритмы
- •Операции
- •Операция инкремента и декремента
- •Операции отрицания
- •Операции умножения и деления
- •Операции сдвига
- •Логические операции (&&, ||)
- •Операция присваивания
- •Выражения
- •Работа с памятью Память и указатели
- •Операции адресации и разадресации (&, *)
- •Адресная арифметика
Операции
Операция |
Краткое описание |
Ассоциативность |
() |
НЕТ |
→ |
[] | ||
-> | ||
:: | ||
. | ||
Унарные операции | ||
++ |
инкремент (увеличение) |
← |
-- |
декремент (уменьшение) | |
sizeOf |
размер в байтах | |
~ |
поразрядное отрицание (инверсия) | |
! |
логическая инверсия | |
- |
унарный минус | |
+ |
унарный плюс | |
& |
взятие адреса операнда | |
* |
разадресация | |
new |
выделение памяти | |
delete |
освобождение памяти | |
(type) |
приведение типа | |
Бинарные операции (приоритет уменьшается вниз по блокам) | ||
* |
умножение |
→ |
/ |
деление | |
% |
остаток при целочисленном делении | |
+ |
плюс |
→ |
- |
минус | |
<< |
побитовый сдвиг влево |
→ |
>> |
побитовый сдвиг вправо | |
< |
< |
→ |
<= |
<= | |
> |
> | |
>= |
>= | |
== |
равно (сравнение) |
→ |
!= |
неравно | |
& |
побитовое “и” |
→ |
^ |
побитовый XOR |
→ |
| |
побитовое “или” |
→ |
&& |
логическое “и” |
→ |
|| |
логическое “или” |
→ |
тернарная операция | ||
= |
присваивание |
← |
*= |
умножение с присваиванием | |
/= |
деление с присваиванием | |
%= |
остаток от деления нацело с присваиванием | |
+= |
сложение с присваиванием | |
-= |
вычитание с присваиванием | |
<<= |
побитовый сдвиг влево с присваиванием | |
>>= |
побитовый сдвиг вправо с присваиванием | |
&= |
побитовое “и”е с присваиванием | |
|= |
побитовое “или” с присваиванием | |
^= |
побитовый XOR с присваиванием | |
, |
последовательность вычислений |
→ |
Все операции можно рассматривать как функции над операндами. В таком контексте очевидно, что каждая операция должна иметь значение некоторого типа. При этом операция инкремента и декремента также изменяет значение самого операнда.
Операция инкремента и декремента
Операция инкремента и декремента имеют две формы:
префиксная (знак операции ставится перед операндом);
постфиксная (знак операции ставится после операнда).
Результатом постфиксной операции является значение самого операнда, а префиксной – значение операнда, изменённое на 1. Кроме того, эти операции изменяют на 1 значение самого операнда.
Пример
x = 3;
y = x++; //y = 3, x = 4
y = ++x; //y = 5, x = 5
y = x--; //y = 5, x = 4
y = --x; //y = 3, x = 3;
Операции отрицания
Операции отрицания:
арифметическое отрицание – унарный минус;
x = 5;
y = -x; // y = -5;
логическое отрицание;
да → нет
нет → да
побитовое отрицание – инверсия всех битов
x = 5; //x = 00001001
y = ~x; //y = 11110110
Операции умножения и деления
Применяются ко всем арифметическим типам. Если в операции оба операнда целочисленны, то и результат целочисленный, причём дробная часть отбрасывается.
int x = 5, y = 2, z;
z = x / y; // z = 2;
! double z: z = x / y = 2
% применяется только к целочисленным типам.