- •Последовательность решения задач на эвм:
- •Состав языка
- •Комментарии
- •Переменные, операции, выражения
- •Базовые алгоритмические конструкции
- •Оператор множественного выбора 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
% применяется только к целочисленным типам.
