Сводная таблица операций.
Арифметические операции (операнды - числа или ссылки)
Аддитивные
Операция |
Результат |
Ограничения |
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 любые выражения |
Содержание раздела