Putting aside the disregard for pointer aliasing and the non-guaranteed size of the short, note that 56257 is 0xdbc1, that is, your pointer is pointing at the byte number 74 (and you machine appears to be little-endian)
Since the type of 'tester' is u16*, it is treated by operator+ as an iterator for an array of u16's. By definition, adding a number n to the pointer to the i'th element of an array results in a pointer to the i+n'th element of the same array. The size of the short in your case is indeed 2 bytes, so the (0+37)'th element of the imaginary array of u16's begins at byte 74.
Thank you all very much, I now understand whats going on and how the values are being calculated.
This code is very old and untouched in a long time...long before I started working here and the bit you are seeing is only an extract that has been simplified to show my problem and is perhaps obsolete now, but until I can understand it I cant really say for sure.