a16b2e27

Сводная таблица операций.


Арифметические операции (операнды - числа или ссылки)

Аддитивные

Операция Результат Ограничения
x+y сумма x и y если один из операндов ссылка, то другой должен быть целой величиной1
x-y разность x и y если один из операндов ссылка, то другой - целая величина или ссылка с тем же базовым типом

1Точнее, величиной типа int, char, short, long или unsigned.

Мультипликативные



Операция Результат Ограничения
x*y произведение x на y x и y не должны быть ссылками
x/y частное от деления x на y x и y не должны быть ссылками
x%y остаток от деления x на y x и y не должны быть типов double, float или ссылка
-x изменение знака x x не должно быть ссылкой

Увеличения и уменьшения

ОперацияРезультатОграничения
x++(x--) x

после использования x увеличивается (уменьшается)

x относится к некоторому числовому значению или к ссылке
++x(--x) x+1

x увеличивается (уменьшается) перед использованием

x относится к некоторому числовому значению или к ссылке

Операции присваивания

ОперацияРезультатОграничения
x=y y приводится к типу x, x получает значение y x, y могут быть любого типа, но не массивом
x op=y x op(y) приводится к типу x, x получает значение x op(y) x, y могут быть любого типа, но не массивом

Порязрядные операции (операнды - целые величины)

Логические

ОперацияРезультатОграничения
x&y порязрядное логическое И для x на y; соответствующий разряд результата равен 1, если оба разряда x и y равны 1, и 0 - иначе
x|y порязрядное логическое ИЛИ; соответствующий разряд результата равен 0, если оба разряда x и y равны 0, и 1 - иначе
x^y порязрядное логическое исключающее ИЛИ; соответствующий разряд результата равен 0, если разряды x и y одинаковы, и 1 - иначе
~x логическое отрицание (дополнение); разряд равный 1 в x, равен 0 в результате и наоборот

Сдвиг

ОперацияРезультатОграничения
x сдвиг влево на y разрядов, младшие разряды x равны 0 y положительно и меньше разрядности машины
x>>y сдвиг вправо на y разрядов, старшие разряды x будут равны 0 для положительных x и равны 0 или 1 (в зависимости от транслятора) для отрицательных x y положительно и меньше разрядности машины
<
Логические операции (операнды - числа и ссылки)

ОперацияРезультатОграничения
x&&y логическое И: 1, если x и y не равны 0, 0 - иначе результат типа int
xy логическое ИЛИ: 0, если x и y равны 0, 1 - иначе результат типа int
!x логическое отрицание x: 0, если x не равен 0, 1 - иначе результат типа int
Сравнения (операнды - числа и ссылки)

Отношения

ОперацияРезультатОграничения
x<y (x>y) 1, если x меньше (больше) y, 0 - иначе результат типа int
x=y) 1, если x меньше или равно (больше или равно) y, 0 - иначе результат типа int
Сравнение на равенство

ОперацияРезультатОграничения
x==y (x!=y) 1, если x равно (не равно) y, 0 - иначе результат типа int
Условие

ОперацияРезультатОграничения
x ? y : z y, если x не равно 0, z - иначе
Адресные операции

ОперацияРезультатОграничения
*x значение по адресу, хранящемуся в x, приведенное к базовому типу x x должно быть ссылкой
&x адрес x x должно указывать на некоторое значение
x[y] результат - значение по адресу, находящемуся в x+y приведенное к типу, требуемому операндом один операнд должен быть адресом, другой - целой величиной
x.y результат - значение элемента y записи x x должно быть записью, а y - элемент этой записи
x->y результат - значение элемента y записи с адресом x x должно быть ссылкой на запись, а y - элемент этой записи
Операции, работающие с типом

ОперацияРезультатОграничения
(type)x x преобразуется к типу type x - любое выражение
sizeof(x) размер x в байтах x - любое выражение
sizeof(type) размер в байтах объекта типа type
Операция запятая

ОперацияРезультатОграничения
x,y y

x вычисляется прежде y
x и y любые выражения

Содержание раздела