Например

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 Бинарные (двуместные) операции

 

Делятся на следующие группы:

· аддитивные;

· мультипликативные;

· сдвигов;

· поразрядные;

· операции отношений;

· логические;

· присваивания;

· выбора компонента структурированного объекта;

· операция “запятая”;

· скобки в качестве операций;

Аддитивные операции (операнды: арифметические выражения или указатели).

+ – бинарный плюс – сложение арифметических операндов или сложение указателя с целочисленным операндом.

– бинарный минус – вычитание арифметических операндов или вычитание указателей.