Мультипликативные операции *, /, и % выполняются слева направо. Мультипликативное-выражение: выражение-pm мультипликативное-выражение * выражение-pm мультипликативное-выражение / выражение-pm мультипликативное-выражение % выражение-pm Операнды операций * и / должны иметь арифметический тип, операндыдля % должны быть целочисленного типа. Обычные арифметическиепреобразования ($$R.4.5) производятся над операндами и определяюттип результата. Бинарная операция * обозначает умножение. Бинарная операция / вычисляет частное, а бинарная операция %вычисляет остаток от деления первого выражения на второе. Есливторой операнд у / или % есть 0, результат неопределен, иначе(a/b)*b + a%b должно равняться a. Если оба операнда неотрицательны,то таким же будет и результат, в противном случае знак результатаопределяется реализацией. R.5.7 Аддитивные операции Аддитивные операции + и - выполняются слева направо, при этомпроисходят обычные арифметические преобразования ($$R.4.5)операндов арифметического типа. аддитивное-выражение: мультипликативное-выражение аддитивное выражение + мультипликативное-выражение аддитивное-выражение - мультипликативное-выражение Операнды должны быть арифметического типа или типа указателя.Результатом операции + является сумма операндов. Можно складыватьуказатель на объект в массиве и значение любого целочисленного типа.Результатом будет указатель того же типа, что и исходный указатель,но он будет настроен на другой объект массивас заданным смещением от исходного объекта. Так, если Pесть указатель на объект массива, выражение P+1 является указателемна следующий объект массива. Если же получившийся в результатесложения указатель вышел за границы массива, результат будетнеопределенным, кроме случая, когда указатель настроен на первый адресбольший верхней границы массива. Результатом операции - будет разность операндов. Значениелюбого целочисленного типа можно вычитать из указателя, при этомприменяются те же преобразования, что и для операции +. Никакие другие сочетания типов для указателей не допустимы. Если вычитаются два указателя на объекты одного типа, результатомбудет целочисленное значение со знаком, которое показывает на сколькообъектов этого типа отстоят друг от друга указуемые объекты. Указателина соседние элементы массива отстоят на 1. Тип результата зависит отреализации, но он должен быть определен как ptrdiff_t в стандартномзаголовочном файле <stddef.h>. Результат не определен, если указателине настроены на элементы одного массива. Если P есть указательна последний элемент массива, то (P+1) - 1 есть P.