Язык С




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


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

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

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




    Содержание  Назад  Вперед