...
Addition is between two operands of arithmetic type or between a pointer to an object type and an integer type (see ARR37-C. Do not add or subtract an integer to a pointer to a non-array object and ARR38-C. Do not add or subtract an integer to a pointer if the resulting value does not refer to an element within the arrayKeep indexes and pointers within arrays in acceptable bounds. for rules about adding a pointer to an integer). Incrementing is equivalent to adding one.
...
Subtraction is between two operands of arithmetic type, two pointers to qualified or unqualified versions of compatible object types, or between a pointer to an object type and an integer type. See ARR36-C. Do not subtract or compare two pointers that do not refer to the same array, ARR37-C. Do not add or subtract an integer to a pointer to a non-array object, and ARR38-C. Do not add or subtract an integer to a pointer if the resulting value does not refer to an element within the arrayKeep indexes and pointers within arrays in acceptable bounds. for rules about pointer subtraction. Decrementing is equivalent to subtracting one.
...