5.7 Additive operators p5 より > When an expression that has integral type is added to or subtracted from a pointer, > the result has the type of the pointer operand. ... > ... If both the pointer operand and the result point to elements of the same array object, or > one past the last element of the array object, the evaluation shall not produce an overflow; > otherwise, the behavior is undefined.