Например
int arg=4, rez;
rez= arg ++*2; // rez=8, arg=5
rez=++ arg *2; // arg=6, rez=12
Внешнюю неоднозначность имеют выражения, в которых знак унарной операции ++ (или – –) записан непосредственно рядом со знаком бинарной операции +.
X+++b или z – – –d.
В этих случаях трактовка однозначно и полностью определяется рангами операций (бинарные аддитивные + имеют ранг 4;унарные ++ и –– имеют ранг 2).Таким образом:
x+++b эквивалентно (x++)+b
z– – –d эквивалентно (z– –)–d.
Операнд для операции ++ (и для операции – – ) не может быть константой либо произвольным выражением. Записи ++5 или 84++ будут неверными. ++(j+k) также неверная запись. Операндами унарных операций ++ и – – должны быть всегда модифицируемые выражения (L– value, left value, l – значение, леводопустимое выражение).
Термины «леводопустимое выражение» и «l–значение» происходят от объяснения действия операции присваивания E=D, в которой операнд Е слева от знака операции присваивания может быть только модифицируемым l – значением. Примером модифицируемого l – значения служит имя переменной, которой выделена память. L – значение – ссылка на область памяти, значение которой доступно изменениям.
Sizeof – операция вычисления размера (в байтах) для объекта того типа, который имеет операнд. Разрешается два формата операции:
sizeof <выражение>
sizeof (тип).
Пример:
int a, b[100], *x;
sizeof (20.0) 8 байтов
sizeof (a) 2 байта
sizeof (b) 200 байтов
sizeof (*x) 2 байта
sizeof (int) 2 байта
sizeof (date) 12 байтов
4.2 Бинарные (двуместные) операции
Делятся на следующие группы:
· аддитивные;
· мультипликативные;
· сдвигов;
· поразрядные;
· операции отношений;
· логические;
· присваивания;
· выбора компонента структурированного объекта;
· операция “запятая”;
· скобки в качестве операций;
Аддитивные операции (операнды: арифметические выражения или указатели).
+ – бинарный плюс – сложение арифметических операндов или сложение указателя с целочисленным операндом.
– – бинарный минус – вычитание арифметических операндов или вычитание указателей.
Дата добавления: 2015-06-10; просмотров: 708;