Операционная система UNIX. Руководство программиста


Аддитивные операции


Выражения с аддитивными операциями + и - группируются слева направо. Выполняются обычные арифметические преобразования. Для каждой из операций допустимы и некоторые дополнительные типы операндов.

аддитивное_выражение: выражение + выражение выражение - выражение

Результат операции + равен сумме ее операндов. Можно складывать указатель на объект в массиве и значение любого целочисленного типа. Последнее во всех случаях преобразуется в адресный сдвиг умножением на размер указуемого объекта. Результатом является указатель того же типа, что и первоначальный, указывающий на другой объект в том же массиве, соответствующим образом сдвинутый относительно первоначального объекта. Так, если P - указатель на объект в массиве, то выражение P+1 - это указатель на следующий объект в массиве. Никакие другие комбинации с исполь- зованием указательных типов недопустимы.

Операция + ассоциативна, и выражения, состоящие из нескольких слагаемых, могут быть переупорядочены компилятором.

Результат операции - равен разности ее операндов. Выполняются обычные арифметические преобразования. Кроме того, значение любого целочисленного типа можно вычесть из указателя, при этом выполняются те же преобразования, что и в случае сложения.

При вычислении разности двух указателей на объекты одного типа результат преобразуется (делением на размер объекта данного типа) к типу int; полученное значение есть число объектов между указуемыми точками. В общем случае это преобразование дает неожиданный результат, если только указатели не соответствуют одному массиву, поскольку указатели, даже для объектов одного типа, не обязательно различаются на число, кратное размеру объекта.




- Начало -  - Назад -  - Вперед -



Книжный магазин