Знаки операций обеспечивают формирование выражений. Выражения состоят из операндов, знаков операций и скобок. Каждый операнд является, в свою очередь, выражением или частным случаем выражения – константой или переменной.
Таблица 1
Унарные операции
&
Получение адреса операнда
*
Обращение по адресу (разыменование)
-
Унарный минус, меняет знак арифметического операнда
~
Поразрядное инвертирование внутреннего двоичного кода целочисленного операнда (побитовое отрицание)
!
логическое отрицание (НЕ). В качестве логических значений используется 0 - ложь и не 0 - истина, отрицанием 0 будет 1, отрицанием любого ненулевого числа будет 0.
++
Увеличение на единицу:
префиксная операция - увеличивает операнд до его использования,
постфиксная операция увеличивает операнд после его использования,
int m=l,n=2;
int a=(m++)+n; // a=4,m=2,n=2
int b=m+(++n) ;//a=3 ,m= 1 ,n=3
--
Уменьшение на единицу:
префиксная операция - уменьшает операнд до его использования, постфиксная операция уменьшает операнд после его использования.
sizeof
Вычисление размера (в байтах) для объекта того типа, который имеет операнд; имеет две формы sizeof выражение sizeof (тип). Примеры: sizeof(float)//4
sizeof(1.0)//8,
т. к. вещественные константы по умолчанию имеют тип double
деление операндов арифметического типа (если операнды целочисленные, то выполняется целочисленное деление)
%
о получение остатка от деления целочисленных операндов
Операции сдвига (определены только для целочисленных операндов).
Формат выражения с операцией сдвига:
операнд левый операция сдвига операнд правый.
<<
сдвиг влево битового представления значения левого целочисленного операнда на количество разрядов, равное значению правого операнда, освободившиеся разряды обнуляются
>>
сдвиг вправо битового представления значения правого целочисленного операнда на количество разрядов, равное значению правого операнда, освободившиеся разряды обнуляются, если операнд беззнакового типа и заполняются знаковым разрядом, если - знакового
Поразрядные операции:
&
поразрядная конъюнкция (И) битовых представлений значений целочисленных операндов (бит =1, если соответствующие биты обоих операндов=1)
|
поразрядная дизъюнкция (ИЛИ) битовых представлений значений целочисленных операндов (бит =1, если соответствующий бит одного из операндов=1)
^
поразрядное исключающее ИЛИ битовых представлений значений целочисленных операндов (бит =1, если соответствующий бит только одного из операндов=1)
~
поразрядное отрицание битовых представлений значений целочисленных операндов (бит = 1, если соответствующий бит 0)
Операции сравнения: результатом являются true (не 0) или false(0)
<
меньше, чем
>
больше, чем
<=
меньше или равно
>=
больше или равно
= =
равно
!=
не равно
Логические бинарные операции:
&&
конъюнкция (И) целочисленных операндов или отношений, целочисленный результат ложь(0) или истина(не 0)
||
дизъюнкция (ИЛИ) целочисленных операндов или отношений, целочисленный результат ложь(0) или истина(не 0)
!
Условная операция.
В отличие от унарных и бинарных операций в ней используется три операнда.
(Выражение1) ? (Выражение2): (Выражение3);
Первым вычисляется значение выражения1. Если оно истинно, то вычисляется значение выражения2, которое становится результатом. Если при вычислении выражения1 получится 0, то в качестве результата берется значение выражения3.